Pandas在字段的开头写了Excel escape' =' -sign

时间:2017-03-16 09:54:09

标签: python excel pandas dataframe

使用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)?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您是否尝试在文本开头添加',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)