Python / Excel – 将.xlsx工作簿从文件合并到.csv中

试图将多个.xlsx工作簿从一个文件编译为一个.csv文件

我创build的循环只捕获文件中的第一个工作簿。

我怎样才能改变这个捕获文件中的所有工作簿? 数据仅在所有工作簿的Sheet1上

import os import xlrd import csv rootdir = r'C:\Users\username\Desktop\Mults' filenames = [] for subdir, dir, files in os.walk(rootdir): for file in files: filenames.append(os.path.join(subdir, file)) wb = xlrd.open_workbook(os.path.join(subdir, file)) sh = wb.sheet_by_index(0) with open('acit_multsTEST.csv','wb') as f: c = csv.writer(f) for r in range(sh.nrows): c.writerow(sh.row_values(r)) 

我感谢任何帮助!

谢谢!

所以你必须做到以下几点。

  • 获取所有工作簿的列表
  • 打开一个主要的CSV来追加所有的数据
  • 迭代你的工作簿列表
  • 将每张表追加到您的csv

     import glob import os import xlrd import csv ROOTDIR = r'C:\Users\username\Desktop\Mults' wb_pattern = os.path.join(ROOTDIR, '*.xlsx') workbooks = glob.glob(wb_pattern) with open('out.csv', 'wb') as outcsv: writer = csv.writer(outcsv) for wb in workbooks: book_path = os.path.join(ROOTDIR, wb) book = xlrd.open(book_path) sheet = book.sheet_by_index(0) for row_num in xrange(sheet.nrows): row = sheet(row_num) writer.writerow(row)