python 写入excel_Python帮你做Excel——写入Excel文档

上一篇文章我们学习了如何使用openpyxl读取excel数据。当然除此之外,我们还可以向excel文档中写入数据。写入数据的过程在某种程度上与读取数据的过程十分类似。我们可以创建excel工作表,在单元格内写入文字、数字或方程,在修改完毕之后关闭文件。此外我们还会创建、删除工作表,应用设置、字体和样式,设置单元格和工作区的宽度和高度,合并和取消合并单元格。

Let's GOOOOOOO!

Excel文档创建与保存

首先我们需要学习如何用python创建与保存文档。先导入openpyxl模块,并且创建一个工作簿

>>> import openpyxl

>>> mywb = openpyxl.Workbook()

上面的代码会创建一个只包含一个工作表的工作簿,如上一章描述的那样,我们可以用下列代码确认工作表的名字,数量和活动的工作表。

>>> mywb.get_sheet_names()

['Sheet']

>>> sheet = mywb.active

>>> sheet.title

'Sheet'

现在我们可以修改工作表的名字,示例如下

>>> sheet.title = 'MyNewTitle'

>>> wb.get_sheet_names()

['MyNewTitle']

>>>mywb.save('NewExcelFile.xlsx')

这样一个新的excel文件就创建完成了,此时如果你打开你的当前工作路径就可以看到刚刚创建的文件——‘NewExcelFile’工作簿里有唯一的一个叫做‘MynewTitle’的工作表。

载入Excel文件并保存

在把一个现有的excel文件读入内存,并对它进行一系列修改之后,必须使用save()方法,将其保存,否则所有的更改都会丢失。不过保存副本的方法其实非常简单,只是将读取excel文件与保存文件的方法结合起来即可,详见下面的代码

>>> import openpyxl

>>> mywb = openpyxl.load_workbook('filetest.xlsx')

>>> sheet = mywb.active

>>> sheet.title = 'Working on Save as'

>>> mywb.save('example_filetest.xlsx')

从上面的代码我们可以看到,我们读取了一个已经存在的文件,更改了工作表的名字然后保存了一个工作簿副本。在这个案例当中原工作簿与新创建的工作簿都会在你的工作路径里,你可以尝试打开看一下,是否按照你的思路成功更改了工作表名。 通常用python修改excel文件时,最好能保存为一个与原文件不同名字的副本,这样能预防你的程序中存在bug或者工作时出现任何错误。

创建新的工作表

要在工作簿中创建一个新的工作表,只需使用create_sheet()方法即可。类似的,要删除一个工作表只需使用remove_sheet()方法即可。

>>> import openpyxl

>>> mywb = openpyxl.Workbook()

>>> mywb.get_sheet_names()

['Sheet']

>>> mywb.create_sheet()

>>> mywb.get_sheet_names()

['Sheet', 'Sheet1']

>>> wb.create_sheet(index=0, title='1st Sheet')

>>> mywb.get_sheet_names()

['1st Sheet', 'Sheet', 'Sheet1']

>>>mywb.create_sheet(index=2, title='2nd Sheet')

>>>mywb.get_sheet_names()

['1st Sheet', 'Sheet', '2nd Sheet', 'Sheet1']

使用create_sheet()方法创建的新工作表默认排在工作簿的最后一个,当然我们也可以用index具体规定新建工作表的位置,并且还可以在创建的同时对其命名。使用index排序的规则继承了python的排序方法,index从0开始。

删除工作表

当我们想删除一个特定的工作表的时候,使用remove_sheet()方法,具体展示如下

>>>mywb.get_sheet_names()

['1st Sheet', 'Sheet', '2nd Sheet', 'Sheet1']

>>> mywb.remove_sheet(mywb.get_sheet_by_name('1st Sheet'))

>>> mywb.remove_sheet(mywb.get_sheet_by_name('Sheet1'))

>>> mywb.get_sheet_names()

['Sheet', '2nd Sheet']

从上述代码中可以看出,在真正删除一个工作表之前,我们需要选中一个工作表对象。remove_sheet()方法将一个工作表对象作为输入,而不是工作表名。使用get_sheet_by_name()方法,输入工作表名,即可返回一个工作表对象了。当然在最后不要忘记使用save()方法对所作更改进行保存。

向单元格写入数据

现在我们终于来到了如何在选定的单元格中写入数据。其实方法也非常简单,见下

>>> import openpyxl

>>> mywb = openpyxl.Workbook()

>>> mysheet = mywb.get_sheet_by_name('Sheet')

>>> mysheet['F6'] = 'Writing new Value!'

>>> mysheet['F6'].value

'Writing new Value'

从上述代码可以看到,直接向单元格进行赋值即可写入数据。如果你还记得第一章的内容的话,你一定知道,还有另一种方法可以指向单元格的值。我们同样可以用cell()函数指向单元格,并且对其写入数据,示例如下

>>> import openpyxl

>>> mywb = openpyxl.Workbook()

>>> mysheet = mywb.get_sheet_by_name('Sheet')

>>> mysheet.cell(row=2, column=4).value = 'Let\'s try again!'

>>> mysheet['D2'].value

'Let\'s try again!'

注意,使用cell()函数进行写入时,必须使用value方法,否则就会发生下述的错误

>>> mysheet.cell(row=2, column=4) = 'Let\'s try again!'

File "", line 1

SyntaxError: can't assign to function call

向单元格写入方程

excel中的方程是一项非常重要的功能,实际上工作簿的威力就在于它的方程。我们可以使用openpyxl在任何指定的单元格中输入公式,我们需要做的只不过是对单元格赋值一个等号以及你想写的公式,就像这样

>>>mysheet['F6'] = '=Sum(D7:D20)'

看上去与向单元格写入数据的方法并没有什么区别,只是加了等号的公式而已。上面的公式会将D7至D20单元格中所有的数值相加,并存入F6单元格。让我们来看看别的例子

>>> import openpyxl

>>> mywb = openpyxl.Workbook()

>>> mysheet = mywb.active

>>> mysheet['F6'] = 500

>>> mysheet['F7'] = 800

>>> mysheet['D3'] = '=SUM(F6:F7)'

>>> mywb.save('Applyingformula.xlsx')

这个例子是对方程使用的一个完整的呈现,我们在F6中输入500,在F7单元格中输入800。单元格D3有一个把F6和F7加起来的公式。打开电子表格以后,你就会在D3看到1300的数值。

那么至此,我们已经学完了如何读取,写入,修改以及保存excel文件。那么接下来我们将学习如何对表格进行设置和调整,以及如何用openpyxl画图。

敬请期待啦!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值