0

我已经在目标 Excel 列中将单元格格式设置为“文本”。但是 pandas.to_excel 在将字符串写入此列时将格式更改为“常规”,最终该列以空白单元格格式为“文本”,非空白单元格为“常规”。有没有办法将数据写为“文本”而不​​是“常规”?

def exportData(df, dstfile, sheet):
    book = load_workbook(dstfile)
    writer = pd.ExcelWriter(dstfile, engine='openpyxl', date_format='dd/mm/yyyy', datetime_format='mm/dd/yyyy hh:mm')
    writer.book = book
    writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
    df.to_excel(writer, header=False, startrow=2, index=False, sheet_name=sheet)
    writer.save()
4

2 回答 2

1

您可以使用以下方法迭代单元格。

您要格式化的单元格TEXT仅使用:

cell.number_format = '@'

TEXT这将像在 Excel 中一样设置单元格格式。

可能有一种方法可以直接从ExcelWriterPandas 内部进行,但我不熟悉它,也许更了解的人也会编辑该选项的答案。

于 2020-05-18T13:25:29.207 回答
1

您需要做的就是将 pandas 中的数据保存为'object'(文本),例如:

df = pd.DataFrame(data=d, dtype=object)

之后,如果您使用 pandasto_excel方法导出到 Excel,它将作为文本存储在 Excel 中。

于 2020-12-01T13:13:03.757 回答