在xlsxwriter中添加新工作簿到工作簿
问题描述:
我想将一些工作表添加到一个工作簿中。在xlsxwriter中添加新工作簿到工作簿
sheets = ["A.csv", "B.csv", "C.csv"]
for sh in sheets:
workbook = xlsxwriter.Workbook('myxlsx.xlsx')
worksheet = workbook.add_worksheet(sh)
worksheet.write(1,1,"abcd")
workbook.close()
但它的作用是它仅创建对应于“C.csv”片,而不是“A.csv”和“B.csv” 从我所得到的,这是因为每次它循环它创建一个新的工作簿。我想在同一个工作簿上创建3张工作表。
此外,还有一个条件,我想初始化循环内的工作簿构造函数。
答
下面是一个示例代码,但它具有for循环之外的工作簿构造函数,它可以完成您正在寻找的任务!
输入CSV文件:
样品编号
import os
import glob
import xlsxwriter
import csv
flist = [os.path.basename(x) for x in glob.glob(os.getcwd() + '\\*.csv')]
workbook = xlsxwriter.Workbook('split_book.xlsx')
for sh in flist:
worksheet = workbook.add_worksheet(sh)
with open(sh, 'rb') as f:
reader = csv.reader(f)
for r, row in enumerate(reader):
for c, col in enumerate(row):
worksheet.write(r, c, col)
workbook.close()
输出
为什么你需要初始化循环内的工作簿构造? – Abbas