如何通过Python创建多个excel表?
How to create multiple excel sheets through Python?
我有一个在 for 循环中运行的优化问题。我希望将每次新迭代的结果保存在同一工作簿的不同选项卡中。
这就是我正在做的。我得到了多个工作簿,而不是在同一个工作簿中给我多个选项卡。
from openpyxl import Workbook
wb1 = Workbook()
for i in range(n):
ws = wb1.active()
ws.title = str(i)
#code on formatting sheet, optimization problem
wb1.save('outfile'+str(i)+'.xlsx')
每次迭代您都获取相同的工作表 - ws = wb1.active()
- 然后只需将结果保存到不同的工作簿。
您只需在每次迭代时创建一个 new sheet。像这样:
from openpyxl import Workbook
wb1 = Workbook()
for i in range(n):
ws = wb1.create_sheet("run " + str(i))
#code on formatting sheet, optimization problem
wb1.save('outfile.xlsx')
请注意,save
被缩进以便在所有工作表都格式化后简单地保存文件。没有必要在每次迭代时保存。保存操作可能需要一些时间,尤其是在添加更多选项卡时。
此代码将创建 Excel 个工作簿,其中包含与作为输入的文本文件中的字符串数相同的工作表。这里我有一个名为 'sample.txt' 的文本文件,有 3 个字符串。此代码将在名为 'reformatted.data.xls' 的工作簿中创建 3 个工作表。
我还删除了创建工作簿对象时自动创建的默认工作表。
import xlwt
from openpyxl import Workbook
wb1 = Workbook()
row = 0
f = open('C:\Desktop\Mytestcases\sample.txt')
lines = f.readlines()
for i in range(len(lines)):
ws = wb1.create_sheet("worksheet" + str(i))
ws.cell(row=1, column=1).value = lines[i]
row += 1
sheet = wb1.get_sheet_by_name('Sheet')
wb1.remove_sheet(sheet)
wb1.save('reformatted.data.xls')
我有一个在 for 循环中运行的优化问题。我希望将每次新迭代的结果保存在同一工作簿的不同选项卡中。
这就是我正在做的。我得到了多个工作簿,而不是在同一个工作簿中给我多个选项卡。
from openpyxl import Workbook
wb1 = Workbook()
for i in range(n):
ws = wb1.active()
ws.title = str(i)
#code on formatting sheet, optimization problem
wb1.save('outfile'+str(i)+'.xlsx')
每次迭代您都获取相同的工作表 - ws = wb1.active()
- 然后只需将结果保存到不同的工作簿。
您只需在每次迭代时创建一个 new sheet。像这样:
from openpyxl import Workbook
wb1 = Workbook()
for i in range(n):
ws = wb1.create_sheet("run " + str(i))
#code on formatting sheet, optimization problem
wb1.save('outfile.xlsx')
请注意,save
被缩进以便在所有工作表都格式化后简单地保存文件。没有必要在每次迭代时保存。保存操作可能需要一些时间,尤其是在添加更多选项卡时。
此代码将创建 Excel 个工作簿,其中包含与作为输入的文本文件中的字符串数相同的工作表。这里我有一个名为 'sample.txt' 的文本文件,有 3 个字符串。此代码将在名为 'reformatted.data.xls' 的工作簿中创建 3 个工作表。
我还删除了创建工作簿对象时自动创建的默认工作表。
import xlwt
from openpyxl import Workbook
wb1 = Workbook()
row = 0
f = open('C:\Desktop\Mytestcases\sample.txt')
lines = f.readlines()
for i in range(len(lines)):
ws = wb1.create_sheet("worksheet" + str(i))
ws.cell(row=1, column=1).value = lines[i]
row += 1
sheet = wb1.get_sheet_by_name('Sheet')
wb1.remove_sheet(sheet)
wb1.save('reformatted.data.xls')