openpyxl 创建多个sheet的问题

VS0804 2018-07-24 09:48:25
hi ,本人小白,最近参考别人做一个excel表格合并的代码,但是存在着不少问题,恳请各位大神帮忙解决一下。

openpyxl,如何创建多个sheet,从网上看到的都是一个个sheet去建立的,而我自己试了一下编码,感觉逻辑不大对,所以一直出错。
WB = openpyxl.Workbook()
sheet = WB.create_sheet()
for i in range(1,4):
wsheet = WB.get_sheet_names()
sheet_name = WB.get_sheet_by_name(wsheet[i])
print(sheet_name)


Traceback (most recent call last):
File "C:/Python/excel_test.py", line 12, in <module>
sheet_name = WB.get_sheet_by_name(wsheet[i])
IndexError: list index out of range


...全文
1554 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
锐哥898 2020-04-22
  • 打赏
  • 举报
回复
问题原因是: # sheet = WB.create_sheet() # 这里仅创建了一个worksheet #sheet_name = WB.get_sheet_by_name(wsheet[i]) # wsheet[i] 当i=1时访问第二个sheet,因为只有一个sheet所以报错 WB = openpyxl.Workbook() #默认创建一个sheet # 循环建立4个sheet for i in range(1, 5): ws = WB.create_sheet(title=str(i)) # 查看建立的sheet print( WB.get_sheet_names()) #或者 WB.sheetnames # 保存workbook到文件中 WB.save('测试.xlsx') WB.close()
ghostgoodbye 2018-07-24
  • 打赏
  • 举报
回复
引用 3 楼 ghostgoodbye 的回复:
if和while循环这些是python的基本语法,建议你自己在网上多看看。

另外,create sheet创建时,可以设置sheet name和index,比如create_sheet("MySheet",0)
ghostgoodbye 2018-07-24
  • 打赏
  • 举报
回复
if和while循环这些是python的基本语法,建议你自己在网上多看看。
VS0804 2018-07-24
  • 打赏
  • 举报
回复
引用 1 楼 ghostgoodbye 的回复:
sheet_name = WB.get_sheet_by_name(wsheet[i])
这个报错是因为没有那么多sheet页。
create_sheet()只会创建一个sheet页,你要创建多个,可以执行多次



嗯,但是我不想手动执行多次,所以希望用if或者while循环自动建立多个sheet
ghostgoodbye 2018-07-24
  • 打赏
  • 举报
回复
sheet_name = WB.get_sheet_by_name(wsheet[i])
这个报错是因为没有那么多sheet页。
create_sheet()只会创建一个sheet页,你要创建多个,可以执行多次

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧