Python 操作 excel 的相关问题

2018 年 5 月 9 日
 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")
4924 次点击
所在节点    Python
15 条回复
myyou
2018 年 5 月 9 日
保存的时候改名字
bomb77
2018 年 5 月 9 日
xlutils
liuxun349
2018 年 5 月 9 日
@myyou 是改 sheet 的名字吗?文件名改是没有作用的
liuxun349
2018 年 5 月 9 日
@bomb77 求详解
golmic
2018 年 5 月 9 日
最关键的代码被你省略了。。。
liuxun349
2018 年 5 月 9 日
@golmic 啊?我就是使用 p_sheet1.write
()
SingeeKing
2018 年 5 月 9 日
换成 xlutils

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

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

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

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

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

© 2021 V2EX