【问题标题】:Pandas write Excel escape '='-sign at start of field熊猫在字段开头写 Excel 转义“=”符号
【发布时间】:2017-03-16 09:54:09
【问题描述】:

使用 Python Pandas,我想将一些内容写入 Excel 文件:=) some text

如何在不出现 Excel 错误的情况下安全地执行此操作?我使用以下代码:

import pandas as pd
df = pd.DataFrame(["=) some text"])
writer = pd.ExcelWriter("test_file.xlsx")
df.to_excel(writer)
writer.save()

此特定文本输入会创建不正确的 Excel 文件,因为它以“=”开头且公式不正确。有什么方法可以逃避'='吗?我试图用引号转义整个文本字段,这很有效,但我想知道是否存在更优雅的解决方案。也许可以设置列类型(如explained here)?

【问题讨论】:

  • =之前使用'

标签: python excel pandas dataframe


【解决方案1】:

在 Excel 中,您可以在保存工作簿之前添加一些代码:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Worksheets(<YourWorksheet>).Cells(row, column).EntireColumn.NumberFormat = "@"
End Sub

【讨论】:

  • 我正在寻找 Python 中的答案,所以我可以通过代码解决这个问题。我想这个解决方案在 Excel 中?我应该在哪里输入这个命令?
  • 对不起,我的误会。在保存文件之前,我将答案更改为在 Excel 中执行。
  • 对不起,这并不能真正回答如何在 Python 中执行此操作的问题
【解决方案2】:

您是否尝试在文本开头添加',Excel 会自动将其视为字符串:

df = pd.DataFrame(["'=) some text"])

从您提供的链接中,您可以应用以下内容:

format1 = workbook.add_format({'num_format': '@'})
worksheet.set_column('A:A', None, format1)

最后,您可以将整个 df 转换为 Excel 可接受的字符串:

df = df.apply(lambda x: "'" + x)

【讨论】:

  • 我就是这样做的,但我想知道是否有更优雅的解决方案
  • 我明白了答案的重点,但错误仍未解决。该字段仍作为无效公式执行
  • df.apply() 怎么样?
猜你喜欢
  • 1970-01-01
  • 2022-11-24
  • 2018-07-12
  • 1970-01-01
  • 2017-08-02
  • 2019-03-21
  • 1970-01-01
  • 2016-07-27
相关资源
最近更新 更多