将两个 .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()
我有两个单独的 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()