【问题标题】:Export CSV files to Excel file in Python (using to_excel)在 Python 中将 CSV 文件导出到 Excel 文件(使用 to_excel)
【发布时间】:2018-01-31 16:31:14
【问题描述】:

我想将位于我文件夹中的 CSV 文件导入到我已有的 Excel 文件中。但是,由于某种原因,我无法做到。有一个错误信息:

Excel worksheet name 'XXXX.csv' must be <= 31 chars 
#(where XXXX is my first CSV file in the folder. It has less than 31 chars)

这是我的代码:

for csv_file in allFiles:
    pd.read_csv(csv_file).to_excel(report, sheet_name = csv_file)

report 是我之前创建的 Excel 文件,allFiles 是一个包含我所有 CSV 文件的对象(代码:allFiles = glob.glob(path + "/*.csv")path 是我保存文件的位置,并且已设置之前)。

我正在使用以下库:

import pandas as pd
import glob
from pandas.io.excel import ExcelWriter

PD:我也试过下面的代码:

with ExcelWriter('report2.xlsx') as ew:    
    for csv_file in allFiles:
        pd.read_csv(csv_file).to_excel(ew, '{}')

但它只适用于两个 csv 文件,并将所有数据存储在一张纸上。

另外,我尝试了here的说法,但出现错误消息Invalid Excel character '[]:*?/\' in sheet name

谢谢

【问题讨论】:

  • 最长的工作表名称是多少 (csv_file)?
  • 不是excel文件。 excel 工作簿中的工作表必须有 30 个字符或更少(如果您打开一个新的 excel 工作簿,工作表名称默认为“Sheet 1”“Sheet 2”等。如果您尝试,此名称不能超过 30 个字符重命名它

标签: python-3.x pandas export-to-excel pandas.excelwriter


【解决方案1】:

试试这个

for csv_file in allFiles:
    pd.read_csv(csv_file).to_excel(report, sheet_name = csv_file[:30]) #this will use the first 30 characters of the excel workbook name 

【讨论】:

  • 它不工作。最长的 csv 文件的扩展名为 21 个字符。
猜你喜欢
  • 2018-11-06
  • 1970-01-01
  • 2012-10-27
  • 2018-09-11
  • 1970-01-01
  • 1970-01-01
  • 2016-03-29
  • 2011-03-17
相关资源
最近更新 更多