2012-07-17 19 views
2

我想要使用axlsx爲ruby生成餅圖。一切工作正常,但我似乎無法獲得數據標籤出現每個「餅分片」。我拍的是或多或少的image。 (即它應該有數據標籤和領導線)。使標籤具有數值並且像平常一樣包括具有顏色映射的圖例也是很好的。如何添加數據標籤使用axlsx

任何人都知道如何做到這一點?

謝謝

+0

歡迎堆棧溢出。我不是axlsx的專家,但可以請您發佈代碼嗎?看看http://stackoverflow.com/faq#questions和http://stackoverflow.com/questions/how-to-ask如果你想改善你的帖子 – 2012-07-18 07:26:51

回答

6

這是randym,axlsx的作者。 簡短的版本是,這還沒有實現,所以你不能根據你的圖像獲得標籤到圖表中。

從規範的最大缺少的部分是(ECMA-376 - 第1部分)需要被插入任一系列,圖表,或者兩者作爲

21.2.2.49 dLbls(數據標籤)

它似乎是三者中的共同點。

我將有一段時間在本週晚些時候有更深入的瞭解,但如果你是爲促進axlsx - 我搶在freenode(#axlsx)或張貼問題回購https://github.com/randym/axlsx

UPDATE

原來這比我預想的要容易得多。

現在有一個關於餅圖的主版本(https://github.com/randym/axlsx)的工作版本。 我將在接下來的幾天內更新其餘支持的圖表類型,並在下週正式發佈。

謝謝你讓我知道你需要這個。

下面是如何使用它的簡單示例:

require 'axlsx' 
p = Axlsx::Package.new 
wb = p.workbook 

# Pie Chart 
wb.add_worksheet(:name => "Pie Chart") do |sheet| 
    sheet.add_row ["First", "Second", "Third", "Fourth"] 
    sheet.add_row [1, 2, 3, 4] 
    sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,2], :end_at => [5, 15], :title=> 'dark corner here') do |chart| 
    chart.add_series :data => sheet["A2:D2"], :labels => sheet["A1:D1"] 
    chart.d_lbls.show_val = true 
    chart.d_lbls.show_percent = true 
    chart.d_lbls.d_lbl_pos = :outEnd 
    chart.d_lbls.show_leader_lines = true 
    end 
end 

p.serialize 'pie_chart_with_data_labels.xlsx' 

爲d_lbls可用的屬性有:

lbl_pos必須是以下之一:BESTFIT,:B,:CTR,:inBase ,:inEnd,:升,:outEnd,:R:噸 默認axlsx將使用:BESTFIT

和以下布爾屬性:

show_legend_key

show_val

show_cat_name

show_ser_name

show_percent

show_bubble_size

show_leader_lines

+0

太棒了!非常感謝。 – jmichels 2012-07-19 06:18:31

+0

嗨@randym,請你看看這個問題:http://stackoverflow.com/questions/23986981/uninitialized-constant-zipdostime-error-when-using-axlsx-gem-in-rails-app 我無法在axlsx中找到有關包裝的序列化方法的良好文檔。我在嘗試在Rails應用程序中使用axlsx時遇到了一些困難,但它在單獨的ruby程序中完美工作。希望在這方面提供任何幫助。謝謝! – 2014-06-02 15:18:52

+0

你應該得到更多的讚揚! – 2014-09-10 20:34:29

相關問題