Pandas DataFrame.to_excel如何忽略公式

时间:2017-07-25 13:48:26

标签: python excel pandas

首先,我在stackoverflow和google上查看了doc。我没有找到任何真正帮助我的东西所以我决定发一个问题,如果我想念一个有同样问题的人,我道歉。

这是我的问题,我有一个名为parameters的df,就像那样:

     attribute            clause      value
0    distinguishedName    like       (.)*=_FR,DC=HLD, DC=NET
1    Institution_Label    ==         FakeCompanyName Inc.
2    Employee_Type        ==         1   
3    Email               not like    (.)*.deleted

我使用pandas函数to_excel将其写入xlsx文件。它会创建文件,但它会在xlsx文件中替换==和0,因为我认为它会像excel公式一样检测字符串。你知道是否可以忽略它?

要解决我的问题,我在==之前添加一个'因此excel不会转换它。其作品。现在我的excel文件中的'==而不是0,但我真正想要的是==

有没有人知道更好的方法来忽略公式而不必更改数据框的单元格值?

这是我的代码:

writer = pd.ExcelWriter("Exportations\\DDLCard_"+DDLName+".xlsx")

#replace the == with '==
parameters["clause"] = parameters["clause"].apply(transformParametersClauseToIgnoreExcelFormula)


list_dfs = {}
list_dfs["parameters"] = parameters
#we don't care about those DF
list_dfs["df2"] = df2
list_dfs["df3"] = df2
list_dfs["df4"] = df2


#foreach df, write it on the xlsx file on the sheet named "key"
for key, df in list_dfs.items():
    df.to_excel(writer,
        sheet_name = key,
        encoding = "utf-8",
        index = False
    )
    writer.sheets[key].set_column('A:CO', 25)
writer.save()


def transformParametersClauseToIgnoreExcelFormula(value):
    return re.sub(r"==","'==",value)

谢谢!

PS:请原谅我,如果我犯了什么错误,英语不是我的母语

1 个答案:

答案 0 :(得分:1)

有点晚了,但是对于其他发现此问题的人(取决于您的确切用例),您可以通过将要导出到Excel的字符串作为公式设置来利用此优势。

例如:

val = '=CONCATENATE("=")'

然后将在Excel中仅显示=。

Example screenshot of Excel with formulation bar and displayed value