[英]Python/Excel - Merge .xlsx workbooks from file into .csv
Attempting to compile multiple .xlsx workbooks from a file into a single .csv 尝试将多个.xlsx工作簿从一个文件编译为单个.csv
Loop I've created is only capturing the first workbook from the file. 我创建的循环仅从文件中捕获第一个工作簿。
How can I alter this to capture all workbooks in a file? 如何更改它以捕获文件中的所有工作簿? Data is only on Sheet1 from all workbooks
数据仅在所有工作簿的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))
I appreciate any help! 感谢您的帮助!
Thank you! 谢谢!
So you have to do the following. 因此,您必须执行以下操作。
Append each sheet to your 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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.