2016-11-18 50 views
0

長時間潛伏者,首次提問者。如果我錯過了一些東西,請告訴我。需要幫助來格式化使用openpyxl創建的圖表中的文本

我使用python 35和openpyxl 2.4.0。我在xlsx文件中生成了許多圖表。下面的代碼片段:

# create chart for summary graph 
myChart = BarChart() 
myChart.type = 'col' 
myChart.style = 10 
myChart.title = chartTitle # 'chartTitle' is passed to the function 
myChart.y_axis.title = 'No. of WRs' 
myChart.x_axis.title = 'WR assignee' 
# some lines here omitted (related to charted data) 
myChart.shape = 4 
newSheet.add_chart(myChart, 'F1') 

一切運作良好,但圖表標題和軸標題是18和16磅的字體 - 太大了圖表的大小。我不想在圖表大小上工作,因爲我事先不知道將繪製多少列 - 腳本讀取每週ERP轉儲並繪製特定結果。

openpyxl文檔提供格式化單元格的指導,但在圖表中的文字大小上沒有(我可以找到)。任何幫助,將不勝感激。

+0

請編輯您的問題以顯示[您迄今嘗試過的方式](http://whathaveyoutried.com)。您應該包含您遇到問題的代碼[mcve],然後我們可以嘗試幫助解決特定問題。你還應該閱讀[問]。 –

回答

1

我希望它不會讓你太遲。經過大量研究後,我能夠找到一種方法來使用Openpyxl從圖表段中更改字體和大小。

字體的大小定義在sz = 1500,這意味着通常的15字體大小。使用該邏輯1200是12.最小值是100,最大值是400000.

from openpyxl.chart.text import RichText 
from openpyxl.drawing.text import Paragraph, ParagraphProperties, CharacterProperties, Font  

font_test = Font(typeface='Calibri') 
cp = CharacterProperties(latin=font_test, sz=1500) 
chart.x_axis.txPr = RichText(p=[Paragraph(pPr=ParagraphProperties(defRPr=cp), endParaRPr=cp)]) 
+0

太棒了!感謝萊安德羅,你的努力非常感謝! –