使用Axlsx gem生成Excel堆叠柱状图异常的技术求助
Fixing Stacked Bar Chart "Staircase" Issue in Axlsx Gem for Ruby on Rails
我碰到过一模一样的问题!Axlsx默认的系列重叠度(Series Overlap)不是100%,这就导致堆叠的柱子之间留有间隙,看起来像阶梯状。你只需要在图表配置里加上overlap: 100这一行,就能直接实现你手动调整Excel后达到的理想效果。
修改后的完整代码
sheet.add_chart(Axlsx::BarChart, start_at: "B5", end_at: "I20", title: "Test Title", grouping: :stacked) do |chart| chart.barDir = :col chart.overlap = 100 # 这就是解决问题的关键设置 chart.add_series(data: sheet["C3:E3"], labels: sheet["C2:E2"], title: sheet["C1"]) chart.add_series(data: sheet["F3:H3"], labels: sheet["C2:E2"], title: sheet["F1"]) end
原理说明
Excel里的Series Overlap参数控制同一类别下不同系列柱子的重叠比例,对于堆叠柱状图而言,设置为100%会让每个系列的柱子完全贴合堆叠,彻底消除间隙带来的阶梯感。Axlsx的BarChart类原生支持overlap属性,直接赋值100就对应你手动在Excel里调整的操作,不需要再手动修改生成的文件啦。
内容的提问来源于stack exchange,提问作者Aditya Tiwari
相关产品推荐
相关产品推荐

