工作需要,有多个以日期命名的excel文件,需要把这些文件里的数据合并,而且需要保存日期这个标签。
从网上看到了合并excel文件的部分代码(https://www.cnblogs.com/cjsblog/p/9314166.html)在其基础上增加了读取文件和将文件名作为新的一列这些部分。
# -*- coding: utf-8 -*-
"""
Created on Mon Mar 2 10:13:57 2020
@author: weisssun
"""
import os
import xlrd
import xlsxwriter
filePath = r'D:\Python\2020.02'
#需合并的文件所在的文件夹路径
f_name = os.listdir(filePath)
#读取文件夹内所有文件名
#print(f_name)
source_xls= []
for i in f_name:
source_xls.append(filePath + '\\' + i)
#将文件路径存储在列表中
#print(source_xls)
target_xls = r"D:\Python\合并2020.02.xlsx"
#合并后文件的路径
# 读取数据
data = []
for i in source_xls:
wb = xlrd.open_workbook(i)
for sheet in wb.sheets():
for rownum in range(sheet.nrows):
#合并excel中的所有数据
a = sheet.row_values(rownum)
a.append(i.replace((filePath + '\\'), ''))
#将文件名做为新的一列
data.append(a)
#data.append(sheet.row_values(rownum))
#print(data)
# 写入数据
workbook = xlsxwriter.Workbook(target_xls)
worksheet = workbook.add_worksheet()
font = workbook.add_format({"font_size":14})
for i in range(len(data)):
for j in range(len(data[i])):
worksheet.write(i, j, data[i][j], font)
# 关闭文件流
workbook.close()