2014-08-30 46 views
0

我用下面的代碼創建了一個使用xlsxwriter python模塊的2系列的柱形圖。當我在Microsoft Excel中打開文件時,導航它很慢。用蟒蛇xlsxwriter模塊創建的Excel工作表運行速度太慢

def create_2_series_column_chart(self, sheet_obj, series_1, series_2, chart_name, x_axis_name, y_axis_name, location): 
    chart1 = self.output_workbook.add_chart({'type': 'column'}) 
    chart1.add_series(series_1) 
    chart1.add_series(series_2) 
    chart1.set_title({'name': chart_name}) 
    chart1.set_x_axis({'name': x_axis_name}) 
    chart1.set_y_axis({'name': y_axis_name}) 

    chart1.set_style(42) 

    sheet_obj.insert_chart(location, chart1, {'x_offset': 25, 'y_offset': 10}) 


    series_1 = { 
     'name':  ["MY_SHEET", 2, 1], 
     'categories': ['MY_SHEET', 3, 0, 2+num_days_in_month, 0], 
     'values':  ['MY_SHEET', 3, 15+2*ix+1, 2+num_days_in_month, 15+2*ix+1], 
     } 

    series_2 = { 
     'name':  ["MY_SHEET", 2, 2], 
     'categories': ['MY_SHEET', 3, 0, 2+num_days_in_month, 0], 
     'values':  ['MY_SHEET', 3, 16+2*ix+1, 2+num_days_in_month, 16+2*ix+1], 
     #'data_labels': {'value': True, 'position': 'top'} 
     } 

location = ["A", "J", "S", "AB"][ix]+ "54" 
self.create_2_series_column_chart(self.my_worksheet, series_1, series_2, "CHARTS", 'days', 'count', location) 

任何想法?

+0

速度有多慢?你有沒有完成分析?你知道哪一行代碼是瓶頸嗎? – 2014-08-30 18:51:52

+0

代碼本身不會運行緩慢。圖表出現問題。在創建excel文件後,我打開excel文件,然後轉到包含圖表的工作表。但在該表中導航太慢。 – alwbtc 2014-08-30 18:55:57

+0

使用'xlsxwriter'或Excel導航? – 2014-08-30 19:00:06

回答

2

XlsxWriter以與Excel相同的方式創建圖表,並且有超過200 comparison tests against chart spreadsheets created in Excel來驗證。因此,從理論上講,XlsxWriter沒有做任何事情會產生慢速圖表。此外,沒有其他人報告過任何類似的問題,並且XlsxWriter中的圖表功能使用相當繁重。

儘管如此,你都清楚地看到了問題,所以這裏有一些事情要考慮:

  1. 檢查數據的範圍,該圖是使用繪製數據。在Excel中右鍵單擊圖表並選擇「選擇數據」。然後驗證被繪製的數據是否正確。特別是查找意外長的數據範圍或包含錯誤數據的數據範圍。
  2. 將文件保存在Excel中,關閉它,然後重新打開它。在這種情況下,你看到相同的行爲?

如果這兩個都不突出問題或給你更多的線索,那麼你可以submit a bug report。但是,這將需要一個小而完整的實例來證明問題。像上面這樣的代碼片段沒有足夠的信息來找到這樣的問題。

P.S.我是XlsxWriter的作者。

+0

先生,我很抱歉打擾你,我注意到我在代碼中犯了一個錯誤,似乎我創建了在for循環中,在同一位置上的相同圖表100次重疊。這就是爲什麼表格運行速度太慢。直到我把圖表拖到另一個位置,我才注意到它。最好的問候 – alwbtc 2014-09-04 10:18:34

+0

但還有一件事,當您點擊Excel中的圖表系列時,數據範圍會用藍色/綠色框突出顯示,對吧?用xlsxwriter模塊創建的圖表不會發生這種情況。有任何想法嗎? – alwbtc 2014-09-04 10:21:45

+0

很高興你把它整理出來。 * Q。使用xlsxwriter模塊*創建的圖表不會發生這種情況。答:是的,它的確如此。你不能在評論中張貼截圖,但如果我能的話,它會看起來像你描述。嘗試使用文檔中的[Chart Examples](http://xlsxwriter.readthedocs.org/chart_examples.html)之一。正如我上面所說的,XlsxWriter圖表與Excel圖表完全一樣,應該表現相同。 – jmcnamara 2014-09-04 13:41:34