私は、現在稼働中のシステムの 1 つに使用する動的レポート作成プラグインの作成を依頼されました。これらのレポートは非常に複雑で、レポートごとに 19 のワークシートがあり、各シートには複数のテーブルが含まれており、データ検証 (ドロップダウン) を含むさまざまな量と種類のデータが入力されます。
私の最初の考えは、ルビーの宝石を見つけようというものでした。Railsアプリなので。選ぶべきものはあまりありませんが、私の最後の希望のように見えるAxlsxを見つけました。
テーブルの 1 つには 6 つの列があり、そのうちの 4 つはデータ検証が必要です。
.add_style
メソッドを使用して、各列のスタイルを設定したり、フォーマットを変更したりできることがわかりました。
p.workbook do |wb|
# define your regular styles
styles = wb.styles
title = styles.add_style :sz => 15, :b => true, :u => true
default = styles.add_style :border => Axlsx::STYLE_THIN_BORDER
header = styles.add_style :bg_color => '00', :fg_color => 'FF', :b => true
profit = styles.add_style :border => Axlsx::STYLE_THIN_BORDER
percent = styles.add_style :num_fmt => Axlsx::NUM_FMT_PERCENT, :border => Axlsx::STYLE_THIN_BORDER
行を作成するときにそれらのスタイルを適用します。
ws.add_row ['Quarter', 'Profit', '% of Total'], :style => header
ws.add_row ['Q1-2010', 'yes', '=B4/SUM(B4:B7)'], :style => [default, profit, percent]
そして、データを検証する方法があることを見てきました。
p.workbook.add_worksheet(name: "dropdown") do |ws|
ws.add_row ["rank_type"]
ws.add_data_validation("A2:A1000", {
:type => :list,
:formula1 => 'lists!A2:A4',
:showDropDown => false,
:showErrorMessage => true,
:errorTitle => '',
:error => 'Please use the dropdown selector to choose a valid rank type',
:errorStyle => :stop,
:showInputMessage => true,
:promptTitle => 'Rank type',
:prompt => 'Please select a valid rank type'})
end
行を追加するときに検証が必要なセルを指定する方法はありますか。または、さまざまなサイズのテーブルにそれらを追加するには?
スタイルと同じようにデータの検証を指定できればクールだと思っていました。このようなもの。
boolean_validation = format.add_data_validation :type => list, :formula => 'lists!A2:A4'... (rest of the options)
次に、行を作成するとき
ws.add_row ['Q1-2010', 'yes', '=B4/SUM(B4:B7)'], :style => [default, profit, percent], :format => [nil, boolean_validation, nil]
このようなことを試みた人はいますか? または、そのようなものを構築する方法についてアイデアを得た人