【发布时间】:2018-03-08 21:28:13
【问题描述】:
我正在开发一个程序,需要的功能之一是获取 pandas 数据框并将其导出到 Excel。这部分工作正常。但是,在导出时,我需要将一些单元格的文本旋转为垂直而不是默认的水平排列。
这是我目前所拥有的:
output = BytesIO()
writer = pd.ExcelWriter(output, engine='xlsxwriter')
filename = "Data for {} at {} on {}".format(item_no, loc, date)
columns = [('A:A', 18),
('B:B', 4),
('C:C', 18),
('D:Y', 20),
('Z:Z', 18),
('AA:AA', 12),
('AB:AB', 18),
('AC:AC', 12),
('AD:AD', 4),
('AE:AF', 18),
('AG:AG', 11),
('AH:AK', 16),
('AL:AL', 10),
('AM:AN', 14.5)]
df = fetch_data(item_no, loc, date)
df.to_excel(writer, index=False, sheet_name='Sheet1')
for col, width in columns:
writer.sheets['Sheet1'].set_column(col, width)
writer.save()
writer.close()
output.seek(0)
我知道 xlsxwriter 库有format.set_rotation() 但from what I can tell,这仅在您使用worksheet.write(..., format) 时使用,而不是在pandas 将每个单元格写入工作表之后。
如何让某些单元格垂直(90 度旋转)而不是水平定向文本?特别是,我对在单元格D1:Y1 中旋转文本感兴趣。
【问题讨论】:
-
您必须对生成的文件进行后处理 - 可能使用 xlsxwriter 本身,以便向其中添加特定于单元格的选项。
-
我同意。最好的方法是将数据帧转储到 Excel,然后用帧数据和您想要的格式覆盖单元格
D1:Y1中的数据。
标签: python python-3.x pandas xlsxwriter