python 3.4用哪个版本的openpyxl_Python3 openpyxl库

本文详细介绍了Python3如何使用openpyxl库来读取和写入Excel文件,包括创建工作簿、读取数据、数据验证、保存文件等操作。还展示了如何将Excel文件转换为字典对象,并提供了读取、校验和操作数据的示例代码。
摘要由CSDN通过智能技术生成

Python3 openpyxl库

用于读取和写入 Excel 2010 xlsx/xlsm/xltx/xltm 文件。通过 pip install openpyxl 命令下载 openpyxl 库。

演示代码

通过下面的演示代码,可以快速创建一个名为 sample.xlsx 的表格文件:

from openpyxl import Workbook

import datetime

wb = Workbook()

# 获取活动工作表

ws = wb.active

# 数据可以直接分配到单元格

ws['A1'] = 42

# 行也可以追加

ws.append([1, 2, 3])

# Python类型将自动转换

ws['A2'] = datetime.datetime.now()

# 保存文件

wb.save("sample.xlsx")

openpyxl_sample.png

通用方案

通用读取类

创建一个 excel_to_dict.py 文件,写入下面的代码:

from os.path import isfile

from openpyxl import load_workbook

class ExcelToDict:

"""

将Excel文件对象转成Python字典对象

"""

def __init__(self, file_dir, title_row=0):

# 工作簿文件的路径

self.file_dir = file_dir

# 标题行位于第几行

self.title_row = int(title_row)

self.data_dict = {}

self.work_book = None

def open_object(self):

"""打开工作簿对象"""

valid = isfile(self.file_dir)

# file_dir指向的文件是否不存在

if not valid:

raise Exception('文件路径 {0} 不存在'.format(self.file_dir))

self.work_book = load_workbook(filename=self.file_dir)

def read_excel(self):

"""读取工作簿数据"""

if not self.work_book:

raise Exception('需要先调用 open_object() 方法以打开工作簿对象')

for sheet_name in self.work_book.sheetnames:

# 每个工作表的字典

data_dict_sheet = {'title_row': [], 'value_row': {}}

# 获取工作表对象

ws = self.work_book[sheet_name]

# 预先创建工作表中每一行的字典

for i in range(ws.max_row - 1 - self.title_row):

data_dict_sheet['value_row'][i] = {}

# 遍历所有列

columns = tuple(ws.columns)

for column in columns:

# 每一列的标题

title = column[self.title_row].value

# 记录每列的标题

data_dict_sheet['title_row'].append(title)

row_num = 0

# 遍历每一列中的所有值

for col in column:

# 忽略每一列的标题行

if column.index(col) <= self.title_row:

continue

data_dict_sheet['value_row'][row_num][title] = col.value

row_num += 1

# 记录每个工作表的数据字段

self.data_dict[sheet_name] = data_dict_sheet

def check(self, check_item=None, sheet_name=None, sheet_index=0):<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值