【问题标题】:Appending multiple CSV to single Excel worksheet using Python Openpyxl使用 Python Openpyxl 将多个 CSV 附加到单个 Excel 工作表
【发布时间】:2017-12-21 09:12:37
【问题描述】:

我被一堆 csv 文件(多列,第 14 行的标题)困住了,我想将所有 csv 附加到单个 Excel 工作表模板。该模板的标题只是 csv 的子集,因此并非每一列都需要复制。所以理想情况下,我需要能够分配将哪一列复制到哪一新列..

到目前为止,我只能将 csv 文件转换为对应的 excel 文件...

wb = openpyxl.load_workbook('D:/Users/abc/Desktop/Template.xlsx')
ws = wb.get_sheet_by_name('Sheet1')
for csv_file in glob.glob(csv_dir):
    if csv_file.endswith('.csv'):
        with open(csv_file, 'rb') as f:
            reader = csv.reader(f, delimiter=',')
            for row_index, row in enumerate(reader):
                for column_index, cell in enumerate(row):
                    column_letter = get_column_letter((column_index + 1))
                    ws.cell('%s%s'%(column_letter, (row_index + 1))).value = cell
    wb.save(filename = dest_filename)

【问题讨论】:

  • 您正在使用 excel 或 csv 文件?
  • 您能否提供一小部分数据样本以及您想要的结果,以便我们重现该问题?
  • @NareshKumar 我同时使用,将多个 csv 附加到 excel 电子表格
  • 为什么不读取所有的csv并将其保存在易于处理的数据框中,并根据需要附加数据,然后根据需要再次将其转换为csv或excel

标签: python excel csv openpyxl


【解决方案1】:

这可能就是你要找的东西

从 pandas.io.excel 导入 ExcelWriter 导入熊猫

csv_files = ['my_file1.csv', 'my_file2.csv', ..., 'my_file5.csv']

with ExcelWriter('my_excel.xlsx') as ew:
    for csv_file in csv_files:
        pandas.read_csv(csv_file).to_excel(ew, sheet_name=csv_file)

Everilä

【讨论】:

  • 直接从 CSV 转到 Excel 效率更高,因为这两种格式都是面向行的格式。
猜你喜欢
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 2017-11-30
  • 2018-06-20
  • 2018-10-19
  • 2022-11-16
相关资源
最近更新 更多