2016-04-27 180 views
2

我想将一些工作表添加到一个工作簿中。在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张工作表。

此外,还有一个条件,我想初始化循环内的工作簿构造函数。

+1

为什么你需要初始化循环内的工作簿构造? – Abbas

回答

3

下面是一个示例代码,但它具有for循环之外的工作簿构造函数,它可以完成您正在寻找的任务!

输入CSV文件:

enter image description here

样品编号

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() 

输出

enter image description here

相关问题