【发布时间】:2018-02-07 16:38:30
【问题描述】:
我正在尝试获得以下输出。除了标题之外,所有行和列都是文本包装:
import pandas as pd
import pandas.io.formats.style
import os
from pandas import ExcelWriter
import numpy as np
from xlsxwriter.utility import xl_rowcol_to_cell
writer = pd.ExcelWriter('test1.xlsx',engine='xlsxwriter',options={'strings_to_numbers': True},date_format='mmmm dd yyyy')
df = pd.read_csv("D:\\Users\\u700216\\Desktop\\Reports\\CD_Counts.csv")
df.to_excel(writer,sheet_name='Sheet1',startrow=1 , startcol=1, header=True, index=False, encoding='utf8')
workbook = writer.book
worksheet = writer.sheets['Sheet1']
format = workbook.add_format()
format1 = workbook.add_format({'bold': True, 'align' : 'left'})
format.set_align('Center')
format1.set_align('Center')
format.set_text_wrap()
format1.set_text_wrap()
worksheet.set_row(0, 20, format1)
worksheet.set_column('A:Z', 30, format)
writer.save()
格式适用于除标题之外的所有行和列。我不知道为什么格式不适用于第一列(标题),或者我想手动添加列标题编号,例如 0、1、2 等,以便我将打开标题,因此所有行和列都将被格式化
在上面的截图中,换行文本不适用于 A1 到 E1,C1 列的标题有很多空间。如果我手动单击换行文本,它会对齐,否则所有标题都没有使用文本换行格式化。
【问题讨论】:
-
我建议您编辑问题以包含来自 Excel 的屏幕截图,显示您希望数据如何显示。
-
列格式不适用于第一行的标题单元格,因为 Pandas 已经对这些单元格应用了单元格格式并覆盖了列格式。请参阅此 SO 问题中的 following workaround 和解释。
-
我试过 pd.formats.format.header_style = None 它抛出错误模块 'pandas' has no attribute 'formats'
-
那么你的 Pandas 版本可能早于 0.18.1。尝试链接答案中显示的旧版本:
pd.core.format.header_style = None -
好的!非常感谢你:)