一直使用pandas写excel,本次写的数据有大字段,每次写到该字段就报错,代码如下:
with pd.ExcelWriter(r".\提数_20240523\tq_type3_doc.xlsx", engine='openpyxl') as writer:
df.to_excel(writer,index=False, sheet_name='sheet21')
报错信息如下:
openpyxl.utils.exceptions.IllegalCharacterError: Numerical Investigation for Windage Loss and Flow Characteristics Analysis with Supercritical CO_(2) in Labyrinth Seal cannot be used in worksheets.
openpyxl.utils.exceptions.IllegalCharacterError 这个错误通常意味着在Excel工作表中使用了一些不合法或不被允许的字符,查看数据发现确实有特殊字符存在,
Analysis with Supercritical CO_(\u001f2) in Labyrinth Seal
由于这个字符市场部认为是有用的不能被替换掉,而且其他字段也有其他特殊字符,不能方便的以下替换,所以需要用其他办法。
使用xlsxwriter解决,代码如下
# 创建一个 Excel writer 对象
workbook = xlsxwriter.Workbook(r".\提数_20240523\tq_type3_doc.xlsx")
worksheet = workbook.add_worksheet()
# 写入列名到 Excel 文件
for col_num, value in enumerate(df.columns):
worksheet.write(0, col_num, value)
# 写入 DataFrame 中的数据到 Excel 文件
for row_num, row_data in df.iterrows():
for col_num, value in enumerate(row_data):
# 因为第一行被用于列名,所以+1从第二行写
worksheet.write(row_num + 1, col_num, value)
# 保存并关闭 Excel 文件
workbook.close()