事情是这样的,产品经理问将多个Excel合并为一个Excel文件,每个Excel为一个Sheet页。
python代码如下:
import xlrd
import xlsxwriter
import os
import sys
# sourceFolde=r"C:\Users\xiaocai\Desktop\草稿\汇总表格"
# saveExcelFilePath=r"C:\Users\xiaocai\Desktop\草稿\Merge.xlsx"
sourceFolde=sys.argv[1]
print(sourceFolde)
saveExcelFilePath=sys.argv[2]
print(saveExcelFilePath)
def file_name(file_dir):
listxlsx=[]
for files in os.walk(file_dir):
for fileInfo in files[2]:
if fileInfo.endswith('.xlsx') or fileInfo.endswith('.xls') :
listxlsx.append(os.path.join(file_dir,fileInfo))
return listxlsx
listxlsx=file_name(sourceFolde)
workbook = xlsxwriter.Workbook(saveExcelFilePath)
font = workbook.add_format({"font_size":14})
for xlsxFilePath in listxlsx:
wb = xlrd.open_workbook(xlsxFilePath)
for sheet in wb.sheets():
print('开始操作文件{0}'.format(xlsxFilePath))
file_name = os.path.basename(xlsxFilePath)
# 输出为 test.py
file_name = file_name.split('.')[0]
ws2 = workbook.add_worksheet(file_name)
i=0
for rownum in range(sheet.nrows):
rowValues=sheet.row_values(rownum)
for colnum in range(len(rowValues)):
ws2.write(rownum,colnum, rowValues[colnum], font)
print('合并完成,等待Excel文件保存...')
# 关闭文件流
workbook.close()
print('[{0}]文件合并完成'.format(saveExcelFilePath))
输出结果如下: