Openpyxl dataframe_to_rows生成不可读的内容错误

时间:2017-04-03 05:12:36

标签: excel pandas dataframe openpyxl

我创建了一个相当简单的实用程序函数,只需使用openpyxl中较新的dataframe_to_rows选项将数据框放入excel工作表中:

insertRows = dataframe_to_rows(df)
worksheet = workbook.create_sheet(title=sheetName)

for r_idx, row in enumerate(insertRows, 1):
    for c_idx, cell_value in enumerate(row, 1):
        worksheet.cell(row=r_idx, column=c_idx, value=value)

当我打开工作簿时,我收到了excel不可读的内容错误,这通常与格式化有关。经过一些谷歌搜索,我发现答案没有张贴在任何地方。所以在下面发布我的修补程序

1 个答案:

答案 0 :(得分:0)

问题最终与数据框中numpy NAN值的格式有关,而这些值无法正常转换。

一个简单的解决方法是将插入代码更改为以下内容:

try:
    if numpy.isnan(cell_value):
        cell_value = "NAN"
    elif numpy.isinf(cell_value):
        cell_value = "INF"
    else:
        cell_value = float(cell_value)
except:
    pass

worksheet.cell(row=r_idx, column=c_idx, value=cell_value)