原单元格为=开头的字符串,用to_excel写入单元格会被识别为函数

data={"AA":"=xoti"}
data=pd.DataFrame(data,index=[0])
data.to_excel('测试.xlsx')
用to_excel写入excel后,值会变成#NAME? ,怎样能变成文本格式的"=xoti"

在使用to_excel方法将DataFrame写入Excel时,如果单元格的值以等号(=)开头,Excel会将其视为公式而不是纯文本。为了将值作为文本写入Excel,你可以采取以下两种方法之一:

方法1:在写入Excel之前,将值转换为字符串,并在值前添加一个单引号(')。这样Excel会将其视为纯文本而不是公式。

import pandas as pd

data = {"AA": "=xoti"}
data = pd.DataFrame(data, index=[0])
data["AA"] = "'" + data["AA"].astype(str)
data.to_excel('测试.xlsx', index=False)

方法2:在使用to_excel方法时,通过ExcelWriter对象设置单元格格式为文本格式

import pandas as pd

data = {"AA": "=xoti"}
data = pd.DataFrame(data, index=[0])

writer = pd.ExcelWriter('测试.xlsx', engine='xlsxwriter')
data.to_excel(writer, index=False, sheet_name='Sheet1')

# 获取工作簿和工作表对象
workbook = writer.book
worksheet = writer.sheets['Sheet1']

# 设置单元格格式为文本
text_format = workbook.add_format({'num_format': '@'})
worksheet.set_column('A:A', None, text_format)

writer.save()


使用以上两种方法之一,将值作为文本格式写入Excel文件,而不是被解释为公式。