上一篇文章我们学习了如何使用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画图。

敬请期待啦!!!

python写excel文件头_Python帮你做Excel——写入Excel文档相关推荐

  1. python无法读取excel文字_Python帮你做Excel——读取Excel文档

    相信很多坐在办公室上班的朋友每天都需要处理大量的数据,我们常常用Excel制作电子表格来帮助我们处理它们.这当然是一种非常好的做法,但是我相信大家都会发现,很多表格的内容其实大同小异,常常需要我们把同 ...

  2. python写水仙花的作文_python自动打开浏览器下载zip,并且提取内容写入excel

    佬们轻喷,里面有些代码都是现学现写的,一些细节没处理好的地方还请指出来~~~ 首先贴上效果图:有些部分我没有放进来,比如浏览器的启动,但我详细聪明的你们那个玩意肯定一学就会. 下载 使用到的库和总体思 ...

  3. c# npoi 2.5版本设置字体加粗_Python帮你做Excel——格式设置与画图

    之前两篇文章已经向大家讲解了如何利用python读取和写入数据,本次就向大家介绍一下如何使用openpyxl对excel文件进行设置,以及如何在excel文件中绘制图表. 设置字体 使用python对 ...

  4. python写个礼物送人_python写七夕硬核礼物!

    明天就是七夕了! 如果有对象,祝早生贵子!没有对象,祝早结连理! (搞笑一下,祝大家幸福美满吧,嘿嘿嘿) 给大家准备了一份已经写好的代码,利用python+opencv+openpyxl,opencv ...

  5. python自动打开浏览器下载zip,并且提取内容写入excel

    佬们轻喷,里面有些代码都是现学现写的,一些细节没处理好的地方还请指出来~~~ 首先贴上效果图:有些部分我没有放进来,比如浏览器的启动,但我相信聪明的你们那个玩意肯定一学就会.有些东西我没放进来 代码思 ...

  6. python开发游戏引擎_用Python写3A?Cygames的游戏引擎做得怎么样

    有句话叫"二流的游戏公司做游戏,一流的游戏公司做平台".索尼.任天堂.微软这些主机公司,除了推出第一方游戏以外,当然也在维护自家的游戏系统. 其实,以<公主连结RE:Dive ...

  7. python指定数据写入指定excel_python脚本——生成EXCEL,连接数据库,并将指定数据写入EXCEL...

    #!/usr/bin/python # -*- coding: utf-8 -*- #!/usr/bin/env python import MySQLdb import sys import xls ...

  8. 用python写个桌面挂件 | 手把手带大家做只桌面宠物

    既然要写个桌面宠物,首先当然是要找宠物的图片素材啦.这里我们使用的是来自shimiji这款手机APP上的宠物图片素材,例如皮卡丘: 我下了大约60多种宠物的图片素材供大家选择: 在相关文件里都打包一起 ...

  9. 利用python写个桌面挂件,带大家做只桌面宠物

    转载自品略图书馆 http://www.pinlue.com/article/2020/05/2516/2110606798446.html 导语 前段时间有小伙伴留言说想让我带大家写写桌面小挂件,今 ...

  10. python桌面宠物模块_利用python写个桌面挂件 | 手把手带大家做只桌面宠物呗

    导语 前段时间有小伙伴留言说想让我带大家写写桌面小挂件,今天就满足一下留过类似言的小伙伴的请求呗~不过感觉写桌面的挂历啥的没意思,就简单带大家做一只桌面宠物吧~ 废话不多说,让我们愉快地开始吧~ 开发 ...

最新文章

  1. 【通俗理解线性代数】 -- 内积与相关
  2. 如何导入别人的android studio项目,解决gradle版本不兼容问题
  3. 千米感知误差低于5%,嬴彻发布全球领先的超长距精准3D感知技术
  4. 服务器自动登录 linux,linux下如何自动登录远程服务器?
  5. Taro+react开发(80):状态改变的构造函数
  6. JavaScript:this是什么?
  7. SQL 递归查询最顶级目录
  8. 智能家居有线系统KNX的介绍
  9. 怎样看oracle删掉没有,肿么查看以前Oracle卸载干净没
  10. python微信api_微信公众平台 Python 开发包文档
  11. POSTGRESQL 设置hugepage 可以让系统使用内存更有效率,防止OOM
  12. html基础、h5c3高级c3动画 、 JavaScript初高级、css预处理器和git 部分面试题
  13. Apollo(阿波罗)(一)环境搭建
  14. C. Get an Even String
  15. Bridging the Gap Between Anchor-based and Anchor-free Detection
  16. 通过分析134家企业征信牌照机构可见企业征信备案之难
  17. SQLServer LDF日志文件过大解决方案 2021-09-26
  18. IDEA中jpg文件或png文件显示乱码处理方法
  19. 带emoji表情的react输入框组件
  20. 精选(63) 面试官:说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程?

热门文章

  1. MySQL数据库的一些简单操作
  2. 【视频目标检测】|Towards High Performance Video Object Detection
  3. python django跨域解决csrf_exempt
  4. 盲文压纹机和AAC设备
  5. Python——全国二级等级考试
  6. 图片由模糊变清晰的效果实现
  7. 台式计算机没有声音,我们家台式电脑没有声音,该怎样设置
  8. 菜狗杯Misc迅疾响应wp
  9. 王道考研计算机网络第三章--数据链路层
  10. Excel 2010 VBA 入门 071 工作表事件之Worksheet_Change