【问题标题】:Force pandas.to_excel to write data as 'Text' instead 'General' format强制 pandas.to_excel 将数据写入“文本”而不​​是“常规”格式
【发布时间】:2020-05-18 07:39:25
【问题描述】:

我已经在目标 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()

【问题讨论】:

  • 你试过像here一样使用set_column吗?
  • 此链接使用 xlsxwriter 但我使用的是 openpyxl,因为据我所知 xlsxwriter 无法写入现有工作表
  • @KhalidAmin 如果将单元格格式设置为@,它将被设置为文本。您可以在使用 method 编写完单元格并将单元格格式设置为 cell.number_format = '@' 之后迭代单元格。这将导致单元格具有TEXT 格式。

标签: python pandas openpyxl pandas.excelwriter


【解决方案1】:

您可以使用following method 遍历单元格。

您想要格式化为TEXT 的单元格只需使用:

cell.number_format = '@'

这将在 Excel 中将单元格格式设置为 TEXT。

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

【讨论】:

  • 这很有效,谢谢,虽然我不想遍历每个单元格,但我找不到更好的解决方案
【解决方案2】:

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

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

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

【讨论】:

  • 给那个人一枚奖章!这应该是解决方案!
猜你喜欢
  • 1970-01-01
  • 2014-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 2015-04-28
相关资源
最近更新 更多