python - xlsxwriter 将 Excel 文档中第一列的字体样式更改为粗体。如何禁用此选项?
问题描述
这两个 openpyxl 之一,xlsxwriter 在将 csv 文件导出到 excel 时会自动将字体样式更改为粗体。它只发生在第一列。你知道为什么以及如何克服这种行为吗?
import pandas as pd
import openpyxl
import xlsxwriter
from pandas import DataFrame
import time
from glob import iglob
data = pd.read_csv(next(iglob('*.csv')))
data = data.sort_values(by=['A'], ascending=False)
data.to_excel('out.xlsx',engine='xlsxwriter', index=False)
解决方案
您可以将自定义pd.ExcelWriter
实例传递给pd.DataFrame.to_excel()
标题列并显式禁用任何样式:
import pandas as pd
df = pd.DataFrame(data={'col_a': [1,2,3,4], 'col_b': [5,6,7,8]})
with pd.ExcelWriter('out.xlsx') as writer:
df.to_excel(writer, index=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']
header_format = workbook.add_format({
'bold': False,
'border': False})
for col_num, value in enumerate(df.columns.values):
worksheet.write(0, col_num, value, header_format)
编辑 [pandas 0.24 不再支持]:或者,您可以重置所有 pandas 默认标题样式。之后,df.to_excel()
像往常一样打电话。
import pandas.io.formats.excel
pandas.io.formats.excel.header_style = None
推荐阅读
- python - print(threading.current_thread().getName()+ str (' is started \n')) 为什么 getName() 被划掉了?
- python - 我可以在一个项目中使用电子邮件验证功能和使用谷歌登录吗?(在 django 中)
- reactjs - 如何从同一个liferay门户的react js中验证调用jax-rs?
- next.js - 在 vercel 上部署后,next-i18next 无法在动态页面中使用 serversideprops
- javascript - 你如何在javascript中的这个函数代码中添加2decimals点?
- java - 如何正确理解 Google Play 控制台崩溃报告提供的堆栈竞争
- javascript - 我需要允许负数进入这个函数
- java - 无法在我的世界中生成掉落的方块
- azure-data-factory - 数据工厂:如何递归更新 blob 文件结构中的每个 JSON 文件
- reactjs - 为什么 React 状态返回未定义但页面仍然从状态 OK 加载?