2016-09-23 64 views
3

我正在使用xlsxwriter生成圖表。我正在嘗試爲類別軸使用文本,它幾乎適用於所有的Excel版本(2007,2010)。但不是在Excel 2013中,而不是在Microsoft Excel Online(這看起來像是Excel 2013)。python xlsxwriter - Excel 2013柱形圖中錯誤的類別軸

問題:類別軸顯示爲序號(1,2,3 ..),而不是單元格中的實際文本。 這是我的代碼的相關部分,它編寫了data(2大小的元組列表),並基於該數據插入列圖。

xlsxwriter.Workbook('a.xlsx', {'default_date_format': 'dd/mm/yyyy'}) 
    sheet = workbook.add_worksheet(sheet_name) 
    sheet.write_row(0, 0, headers) # Write header row 
    sheet.set_column(0, 1, 25) # Column width 
    rowCount = 1 

    # Write the data 
    for text, total in data: 
     sheet.write_row(rowCount, 0, (text, total)) 
     rowCount += 1 

    column_chart = workbook.add_chart({'type': 'column'}) 
    column_chart.set_size({'width': 850, 'height': 600}) 

    column_chart.set_x_axis({'text_axis': True}) 
    column_chart.add_series({ 
     'name': sheet_name, 
     'categories': [sheet_name, 1, 0, rowCount, 0], # row, col row, col 
     'values': [sheet_name, 1, 1, rowCount, 1], 
     'data_labels': {'value': True} 
    }) 
    sheet.insert_chart('D10', column_chart) 
    workbook.close() 

我已經說過,代碼輸出良好XLSX,在每一個工作練成除了2013年類別軸示出了在片材(1,2,3 ...)的行號而不是文本值分配給categories選項中的圖表。

在此先感謝

回答

2

沒有任何原因,XlsxWriter輸出將在Excel 2007工作,而不是在Excel 2013年的文件格式是默認的2007文件格式和Excel是在向後兼容性非常好。

另外,我沒有看到您描述的問題。我修改你的榜樣,以添加一些樣本輸入數據:

import xlsxwriter 

workbook = xlsxwriter.Workbook('a.xlsx', 
           {'default_date_format': 'dd/mm/yyyy'}) 

sheet_name = 'Data' 

sheet = workbook.add_worksheet(sheet_name) 
sheet.set_column(0, 1, 25) 
rowCount = 1 

data = [ 
    ['Foo', 4], 
    ['Bar', 5], 
    ['Baz', 6], 
] 

# Write the data 
for text, total in data: 
    sheet.write_row(rowCount, 0, (text, total)) 
    rowCount += 1 

column_chart = workbook.add_chart({'type': 'column'}) 
column_chart.set_size({'width': 850, 'height': 600}) 

column_chart.set_x_axis({'text_axis': True}) 
column_chart.add_series({ 
    'name': sheet_name, 
    'categories': [sheet_name, 1, 0, rowCount, 0], # row, col row, col 
    'values': [sheet_name, 1, 1, rowCount, 1], 
    'data_labels': {'value': True} 
}) 
sheet.insert_chart('D10', column_chart) 
workbook.close() 

和輸出看起來是正確的在Excel 2013:

enter image description here

+0

這確實是我期待的,問題是我看到的是1,2,3而不是Foo,bar,baz。如果任何人有這個問題 - 嘗試 - 升級庫 – user3599803

+0

通常[升級模塊](https://xlsxwriter.readthedocs.io/bugs.html#reporting-bugs)是調試XlsxWriter中任何問題的第一步。 – jmcnamara

-1

問題實際上是由我的升級版本的庫解決。我的版本是0.5.1,現在是0.9。我想知道這是否是早期版本中的錯誤。現在工作很好,太糟糕了,我花了一些時間才弄清楚