将两个 .xls 文件加入一个 2 张纸的 .xls 文件

joining two .xls file into a single .xls file with 2 sheets

我有两个单独的 csv 文件,我需要将它们转换为 .xls 文件并将这些 .xls 文件合并为一个 .xls 文件,其中有两个子 .xls 文件作为其工作表的两个(sheet1,sheet2 ).

我成功地从 .csv 文件创建了两个 .xls 文件。

for csvfile in glob.glob(os.path.join('.', 'D:\csvjoin\*.csv')):
   wb = xlwt.Workbook()
   ws = wb.add_sheet('data')
   with open(csvfile, 'r') as f:
       reader = csv.reader(f)
       for r, row in enumerate(reader):
           for c, val in enumerate(row):
               ws.write(r, c, val)
   wb.save(csvfile + '.xls')

但无法将这两个 .xls 合并为包含两张纸的单个文件。 在加入的 .xls 文件中,我想要 SHEET1 = file1.xls 和 SHEET2 = file2.xls

请推荐。

您可以使用 pandas to_excel 数据帧方法,如下所示:

import pandas as pd
df1 = pd.read_csv('path\to\file1.csv')
df2 = pd.read_csv('path\to\file2.csv')

writer = pd.ExcelWriter('path\to\output\file.xls')
df1.to_excel(writer,'sheet1')
df2.to_excel(writer,'sheet2')
writer.save()

编辑

或者你可以用一个循环来完成它(适用于 pandas 0.17.0):

import pandas as pd
writer = pd.ExcelWriter('path\to\output\file.xls')

i = 1
for csvfile in glob.glob(os.path.abspath('D:\csvjoin\*.csv')):
    df = pd.read_csv(csvfile)
    df.to_excel(writer, 'sheet%s' % i)
    i += 1

writer.save()