强制 pandas.to_excel 将数据写入 'Text' 而不是 'General' 格式

Force pandas.to_excel to write data as 'Text' instead 'General' format

我已经在目标 Excel 列中将单元格格式设置为 'Text'。但是,pandas.to_excel 将格式更改为 'General' 时,将字符串写入该列,最终该列以空白单元格结束,格式为 'Text',非空白单元格为 'General'。有没有办法将数据写入 'Text' 而不是 'General'?

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()

您可以使用 遍历单元格。

要将单元格设置为 TEXT 只需使用:

cell.number_format = '@'

这会将单元格格式设置为 Excel 中的 TEXT

可能有一种方法可以直接从 Pandas 中的 ExcelWriter 进行操作,但我对此并不熟悉,也许更了解的人也会编辑该选项的答案。

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

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

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