openpyxl
默认情况下创建名称为“ Sheet1”的电子表格
即使我指定应使用索引0创建工作表。
我确定这不是重复的问题。
文档说openpyxl
支持2010 MS Office版本,但我使用的是office365 pro。
您能提供任何帮助或建议吗?
请注意,独立代码对我来说很好用,但是当同一代码与其他代码集成在一起时,我会遇到以下问题。
我已经尝试了很多东西。因为我是Python的新手,所以似乎有些我不知道的东西。
如果我指定索引1,则会创建两个工作表:一个工作表名为Sheet
,另一个工作表为我提供的名称。如果我提供索引0,则只会创建一个名称为Sheet1
的工作表。
下面的代码应在索引0处创建名为test
的工作表。
for r in range(3, rowcount + 1):
for c in range(1, columncount + 1):
final_path = first_part + str(r) + second_part + str(c) + third_part
table_data = self.driver.find_element_by_xpath(final_path).text
fname = r"{}_{}.xlsx".format(str(i[1]), str(i[2]))
if (os.path.exists(fname)):
workbook = openpyxl.load_workbook(fname)
worksheet = workbook[fname]
else:
workbook = Workbook()
worksheet= workbook.create_sheet(fname,0)
#worksheet = workbook.active
#worksheet.title = fname
worksheet.cell(row=r,column=c).value = table_data
workbook.save(fname)
答案 0 :(得分:2)
您可以通过以下方式删除此工作表:
from openpyxl import Workbook
workbook = Workbook()
del workbook['Sheet']
答案 1 :(得分:0)
openpyxl
会在您首次调用Workbook()
函数时创建一个名为“ Sheet”的工作表。这只是该模块的一种令人讨厌的怪癖。我发现处理它的最干净的方法是重命名该工作表,而不是尝试制作一个新的工作表。
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "My sheet name"
wb.save("Test.xlsx")
将使用名为“我的工作表名称”的单个工作表创建一个xlsx文件。
当您用索引0调用create_sheet
时,只需在原始表之前插入一个新表。
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "My sheet name"
ws2 = wb.create_sheet("Another Name", 0)
wb.save("Test.xlsx")
将创建一个xlsx,其中第一个工作表称为“另一个名称”,第二个工作表称为“我的工作表名称”。如果您要处理一张工作簿,则最简单的方法是使用title
。