目录



>>> from helper import info; info()
页面更新时间: 2020-07-05 23:00:12
操作系统/OS: Linux-4.19.0-9-amd64-x86_64-with-debian-10.4 ;Python: 3.7.3

写入Excel文档

OpenPyXL 也提供了一些方法写入数据,这意味着你的程序 可以创建和编辑电子表格文件。利用Python,创建一个包含几千 行数据的电子表格是非常简单的。

创建并保存Excel文档

调用 openpyxl.Workbook() 函数,创建一个新的空 Workbook 对象。在交互式环境中输入以下代码:

>>> import openpyxl
>>> wb = openpyxl.Workbook()
>>> wb.get_sheet_names()
['Sheet']
>>> sheet = wb.active
>>> sheet.title = 'Spam Bacon Eggs Sheet'
>>> wb.get_sheet_names()
['Spam Bacon Eggs Sheet']

工作簿将从一个工作表开始,名为 Sheet 。 你可以将新的字符串保存在它的 title 属性中,从而改变工作表的名字。

当修改 Workbook 对象或它的工作表和 单元格时,电子表格文件不会保存,除非你调 用 save() 工作簿方法。在交互式环境中 输入以下代码(让 example.xlsx 处于 当前工作目录):

>>> import openpyxl
>>> wb = openpyxl.load_workbook('example.xlsx')
>>> sheet = wb.active
>>> sheet.title = 'Spam Spam Spam'
>>> wb.save('example_copy.xlsx')

这里,我们改变了工作表的名称。为了保存变更, 我们将文件名作为字符串传递给 save() 方法。 传入的文件名与最初的文件名不同, 例如'example_copy.xlsx',这将变更 保存到电子表格的一份拷贝中。

当你编辑从文件中加载的一个电子表格时, 总是应该将新的、编辑过的电子表格保存到 不同的文件名中。这样,如果代码中有缺陷, 导致新的保存到文件中数据不对或讹误,还有 最初的电子表格文件可以处理。

创建和删除工作表

利用 create_sheet() and remove_sheet()方法, 可以在工作簿中添加或删除工作表。在交互式环境中输入以下代码:

>>> import openpyxl
>>> wb = openpyxl.Workbook()
>>> wb.get_sheet_names()
['Sheet']
>>> wb.create_sheet()
<Worksheet "Sheet1">
>>> wb.get_sheet_names()
['Sheet', 'Sheet1']
>>> wb.create_sheet(index=0, title='First Sheet')
>>> wb.get_sheet_names()
['First Sheet', 'Sheet', 'Sheet1']
>>> wb.create_sheet(index=2, title='Middle Sheet')
>>> wb.get_sheet_names()
['First Sheet', 'Sheet', 'Middle Sheet', 'Sheet1']

create_sheet() 方法返回一个新的 Worksheet 对象, 名为 SheetX ,它默认是工作簿的最后一个工作表。或者, 可以利用 indextitle 关键字参数,指定新工作表的 索引或名称。

继续前面的例子,输入以下代码:

>>> wb.get_sheet_names()
['First Sheet', 'Sheet', 'Middle Sheet', 'Sheet1']
>>> wb.remove_sheet(wb.get_sheet_by_name('Middle Sheet'))
>>> wb.remove_sheet(wb.get_sheet_by_name('Sheet1'))
>>> wb.get_sheet_names()
['First Sheet', 'Sheet']

remove_sheet() 方法接受一个 Worksheet对象 作为其参数,而不是工作表名称的字符串。 如果你只知道要删除的工作表的名称,就调用 get_sheet_by_name(), 将它的返回值传入 remove_sheet()

在工作簿中添加或删除工作表之后, 记得调用 save() 方法来保存变更。

将值写入单元格

将值写入单元格,很像将值写入字典中的键。 在交互式环境中输入以下代码:

>>> import openpyxl
>>> wb = openpyxl.Workbook()
>>> sheet = wb.get_sheet_by_name('Sheet')
>>> sheet['A1'] = 'Hello world!'
>>> sheet ['A1'].value
'Hello world!'

如果你有单元格坐标的字符串,可以像字典的键一样, 将它用于 Worksheet 对象,指定要写入的单元格。