Python 操作 excel 的相关问题

2018-05-09 19:17:06 +08:00
 liuxun349
我对一已存在 excel 表进行读写操作,该表含多 sheet,保存之后,却只有最后一个 sheet。
怎么才能对多 sheet 操作保存后,能达到想要的效果呢?
大致写法:
table = xlrd.open_workbook("test.xls", formatting_info=True)
ctable = copy(table)
p_sheet1 = ctable.get_sheet(0)
p_sheet2 = ctable.get_sheet(1)
.....对 sheet1,sheet2,读写操作....
ctable.save("test.xls")
3654 次点击
所在节点    Python
15 条回复
myyou
2018-05-09 19:21:37 +08:00
保存的时候改名字
bomb77
2018-05-09 19:41:25 +08:00
xlutils
liuxun349
2018-05-09 19:49:53 +08:00
@myyou 是改 sheet 的名字吗?文件名改是没有作用的
liuxun349
2018-05-09 19:50:06 +08:00
@bomb77 求详解
golmic
2018-05-09 19:51:41 +08:00
最关键的代码被你省略了。。。
liuxun349
2018-05-09 19:53:28 +08:00
@golmic 啊?我就是使用 p_sheet1.write
()
SingeeKing
2018-05-09 20:05:14 +08:00
换成 xlutils

BUT 为什么不用 openpyxl
anguslg
2018-05-10 00:08:19 +08:00
看了下文档, ctable 在 save 之前大概要先 add_sheet
不过 更推荐用 pandas.DataFrame 处理
catzh
2018-05-10 09:14:11 +08:00
同问,为什么不用 openpyxl ?
myyou
2018-05-10 10:07:21 +08:00
from xlutils.copy import copy
用这个 copy 可以在原有 Excel 修改
jfry
2018-05-10 11:40:24 +08:00
建议用 openpyxl,而且如果需要制作报表的话可以看看 [toaco/tablereport: A python library for making table report.]( https://github.com/toaco/tablereport),完全兼容 openpyxl,哈哈,溜了溜了
liuxun349
2018-05-10 15:38:51 +08:00
@SingeeKing
@catzh
因为之前不知道有 openpyxl,为了图快速解决问题,所以选择自己知道的。
liuxun349
2018-05-10 15:40:27 +08:00
@myyou
就是用的 xlutis.copy
TGlivecoding
2018-05-10 19:37:49 +08:00
其实更推荐你用 http://xlsxwriter.readthedocs.io/ 现在用.xls 的不多了
iblislsy
2018-05-10 19:50:29 +08:00
pandas 在保存 excel 的时候有一个参数 sheet_name, 了解一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/453528

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX