使用openpyxl旋转excel图表的轴

那里我试图使用openpyxl来处理Excel数据。画出来,并导出它们是好的。但是,x_axis是不够的,我想旋转,但没有find解决scheme在文档中。

这里是使用XlsxWriter 解决scheme的解决scheme 。

我的代码是这样的:

from openpyxl import load_workbook from openpyxl.chart import ( ScatterChart, LineChart, Reference, Series, shapes, text, axis) wb = load_workbook('text.xlsx') ws = wb.active c5 = ScatterChart() x = Reference(ws, min_col=1, min_row=2, max_row=ws.max_row) for i in range(3,5): values = Reference(ws, min_col=i, min_row=1, max_row=ws.max_row) series = Series(values, xvalues=x, title_from_data=True) # series.marker.symbol = 'triangle' c5.series.append(series) c5.x_axis.number_format='yyyy/mm/dd' c5.x_axis.title = 'Date' 

谢谢大家!

我的Python版本是3.5.2,而openpyxl是2.4.0

—————- newcode旋转,但使文件损坏,需要修复

 from openpyxl.chart.text import RichText from openpyxl.drawing.text import RichTextProperties c5.x_axis.txPr = RichText(bodyPr=RichTextProperties(rot="-2700000")) 

————- Excel中的代码xml

 <valAx> some codes here <txPr> <a:bodyPr rot="-1350000" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"/> </txPr> <crossAx val="20"/> </valAx> 

上面的代码破坏文件,直到我添加它们

 <txPr> <a:bodyPr rot="-1350000" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"/> <a:p xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"> <a:pPr xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"> <a:defRPr xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"/> </a:pPr> <a:endParaRPr xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" lang="zh-CN"/> </a:p> </txPr> 

感谢@Charlie克拉克我终于得到答案添加代码如下:

 from openpyxl.chart.text import RichText from openpyxl.drawing.text import RichTextProperties,Paragraph,ParagraphProperties, CharacterProperties c5.x_axis.txPr = RichText(bodyPr=RichTextProperties(anchor="ctr",anchorCtr="1",rot="-2700000", spcFirstLastPara="1",vertOverflow="ellipsis",wrap="square"), p=[Paragraph(pPr=ParagraphProperties(defRPr=CharacterProperties()), endParaRPr=CharacterProperties())]) 

这有点复杂,但可以从openpyxl文档中学到

txPr是RichText的types,它由(bodyPr和p)组成,bodyPr定义了它的属性,p是一个序列,决定是否显示轴。

它可以旋转图表的-45度的x轴。