Abh*_*ngh 2 python office365 openpyxl
openpyxl默认情况下,即使我指定应使用索引 0 创建工作表,也会创建名称为“Sheet1”的电子表格。我确信这不是一个重复的问题。文档说openpyxl支持2010 MS Office版本,但我使用的是office365 pro。您能提供任何帮助或建议吗?
请注意,独立代码对我来说工作得很好,但是当相同的代码与其他代码集成时,我遇到了下面描述的问题。我已经尝试了很多事情。由于我是 Python 新手,看起来有些东西我不知道。如果我指定索引 1,则会创建两张工作表:一张带有名称Sheet,另一张带有我提供的名称。如果我提供索引 0,则只会Sheet1创建一张具有名称的工作表。
下面的代码应在索引 0 处创建名为 name 的工作表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)
Run Code Online (Sandbox Code Playgroud)
openpyxl当您第一次调用该函数时,会创建一个名为“Sheet”的工作表Workbook()。这只是模块的一种恼人的怪癖。我发现处理它的最干净的方法就是重命名该工作表,而不是尝试创建一个新工作表
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "My sheet name"
wb.save("Test.xlsx")
Run Code Online (Sandbox Code Playgroud)
将创建一个 xlsx 文件,其中包含一个名为“我的工作表名称”的工作表。当您create_sheet使用索引 0 进行调用时,只需在原始工作表之前插入一个新工作表即可。
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")
Run Code Online (Sandbox Code Playgroud)
将创建一个 xlsx,其中第一个工作表称为“另一个名称”,第二个工作表称为“我的工作表名称”。如果您正在处理一张工作簿,最简单的方法是使用title.
| 归档时间: |
|
| 查看次数: |
7876 次 |
| 最近记录: |