- Python 数据持久化教程
- Python 数据持久化 - 首页
- Python 数据持久化 - 简介
- Python 数据持久化 - 文件 API
- 使用 os 模块处理文件
- Python 数据持久化 - 对象序列化
- Python 数据持久化 - Pickle 模块
- Python 数据持久化 - Marshal 模块
- Python 数据持久化 - Shelve 模块
- Python 数据持久化 - dbm 包
- Python 数据持久化 - CSV 模块
- Python 数据持久化 - JSON 模块
- Python 数据持久化 - XML 解析器
- Python 数据持久化 - Plistlib 模块
- Python 数据持久化 - Sqlite3 模块
- Python 数据持久化 - SQLAlchemy
- Python 数据持久化 - PyMongo 模块
- Python 数据持久化 - Cassandra 驱动程序
- 数据持久化 - ZODB
- 数据持久化 - Openpyxl 模块
- Python 数据持久化资源
- Python 数据持久化 - 快速指南
- Python 数据持久化 - 有用资源
- Python 数据持久化 - 讨论
数据持久化 - Openpyxl 模块
Microsoft 的 Excel 是最流行的电子表格应用程序。它已使用超过 25 年。Excel 的较新版本使用Office Open XML (OOXML) 文件格式。因此,可以通过其他编程环境访问电子表格文件。
OOXML 是一个 ECMA 标准文件格式。Python 的openpyxl 包提供了读取/写入扩展名为 .xlsx 的 Excel 文件的功能。
openpyxl 包使用的类命名法类似于 Microsoft Excel 术语。Excel 文档称为工作簿,并以 .xlsx 扩展名保存在文件系统中。一个工作簿可以包含多个工作表。工作表呈现一个大型单元格网格,每个单元格都可以存储值或公式。构成网格的行和列都有编号。列由字母 A、B、C、…、Z、AA、AB 等标识。行从 1 开始编号。
典型的 Excel 工作表如下所示:
pip 实用程序足以安装 openpyxl 包。
pip install openpyxl
Workbook 类表示一个带有一个空白工作表的新工作簿。我们需要激活它以便可以向工作表中添加一些数据。
from openpyxl import Workbook wb=Workbook() sheet1=wb.active sheet1.title='StudentList'
众所周知,工作表中的单元格名为 ColumnNameRownumber 格式。因此,左上角单元格为 A1。我们将字符串分配给此单元格,如下所示:
sheet1['A1']= 'Student List'
或者,使用工作表的cell() 方法,该方法使用行号和列号来标识单元格。调用单元格对象的 value 属性来赋值。
cell1=sheet1.cell(row=1, column=1) cell1.value='Student List'
在使用数据填充工作表后,通过调用工作簿对象的 save() 方法保存工作簿。
wb.save('Student.xlsx')
此工作簿文件在当前工作目录中创建。
以下 Python 脚本将一系列元组写入工作簿文档。每个元组存储学生的学号、年龄和分数。
from openpyxl import Workbook wb = Workbook() sheet1 = wb.active sheet1.title='Student List' sheet1.cell(column=1, row=1).value='Student List' studentlist=[('RollNo','Name', 'age', 'marks'),(1,'Juhi',20,100), (2,'dilip',20, 110) , (3,'jeevan',24,145)] for col in range(1,5): for row in range(1,5): sheet1.cell(column=col, row=1+row).value=studentlist[row-1][col-1] wb.save('students.xlsx')
工作簿 students.xlsx 保存在当前工作目录中。如果使用 Excel 应用程序打开它,它将显示如下:
openpyxl 模块提供load_workbook() 函数,该函数有助于读取工作簿文档中的数据。
from openpyxl import load_workbook wb=load_workbook('students.xlsx')
您现在可以访问由行号和列号指定的任何单元格的值。
cell1=sheet1.cell(row=1, column=1) print (cell1.value) Student List
示例
以下代码使用工作表数据填充列表。
from openpyxl import load_workbook wb=load_workbook('students.xlsx') sheet1 = wb['Student List'] studentlist=[] for row in range(1,5): stud=[] for col in range(1,5): val=sheet1.cell(column=col, row=1+row).value stud.append(val) studentlist.append(tuple(stud)) print (studentlist)
输出
[('RollNo', 'Name', 'age', 'marks'), (1, 'Juhi', 20, 100), (2, 'dilip', 20, 110), (3, 'jeevan', 24, 145)]
Excel 应用程序的一个非常重要的功能是公式。要将公式分配给单元格,请将其分配给包含 Excel 公式语法的字符串。将 AVERAGE 函数分配给包含年龄的 C6 单元格。
sheet1['C6']= 'AVERAGE(C3:C5)'
openpyxl 模块具有Translate_formula() 函数,用于将公式复制到一个范围内。以下程序在 C6 中定义 AVERAGE 函数,并将其复制到计算平均分数的 C7。
from openpyxl import load_workbook wb=load_workbook('students.xlsx') sheet1 = wb['Student List'] from openpyxl.formula.translate import Translator#copy formula sheet1['B6']='Average' sheet1['C6']='=AVERAGE(C3:C5)' sheet1['D6'] = Translator('=AVERAGE(C3:C5)', origin="C6").translate_formula("D6") wb.save('students.xlsx')
更改后的工作表现在如下所示: