返回介绍

12.5 写入 Excel 文档

发布于 2024-01-22 21:44:06 字数 2670 浏览 0 评论 0 收藏 0

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

12.5.1 创建并保存Excel文档

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

>>> import openpyxl
>>> wb = openpyxl.Workbook()
>>> wb.get_sheet_names()
['Sheet']
>>> sheet = wb.get_active_sheet()
>>> sheet.title
'Sheet'
>>> 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.get_active_sheet()
>>> sheet.title = 'Spam Spam Spam'
>>> wb.save('example_copy.xlsx')

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

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

12.5.2 创建和删除工作表

利用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')
< Worksheet "First Sheet">
>>> wb.get_sheet_names()
['First Sheet', 'Sheet', 'Sheet1']
>>> wb.create_sheet(index=2, title='Middle Sheet')
< Worksheet "Middle Sheet">
>>> wb.get_sheet_names()
['First Sheet', 'Sheet', 'Middle Sheet', 'Sheet1']

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

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

>>> 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()方法来保存变更。

12.5.3 将值写入单元格

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文