8

col_style と row_style と add_conditional_formatting のメソッドが表示されますが、セルを 1 つだけ設定する方法がわかりません。私の例では、列 1 は日付で、列 2 はパーセントです。行の背景を強調表示すると、日付/パーセントの書式設定が失われます。これは、Randy がセルに 1 つのスタイルしか持てないと説明したためです。必要に応じて、その行の最初のセルだけに date_with_background スタイルを割り当てるにはどうすればよいですか?

xlsx_package = Stuff.all.to_xlsx
xlsx_package.workbook.worksheets.first.tap do |sheet|

  sheet.col_style 0, date_format, {row_offset: 1}
  sheet.col_style 1, percent_format, {row_offset: 1}

  list_of_my_stuff.each_with_index do |item,index|
    if needs_background?(item)
      sheet.row_style index+1, with_background
    else
      sheet.row_style index+1, no_background
    end
  end
end
4

4 に答える 4

1

axlsx ではなく、acts_as_xlsx を直接使用しているようです。「list_of_my_stuff」を転置し、「percent_highlight_style」を適用して 2 番目の列を反復処理することもできますが、そのような単純な宝石を超えた何かを実際に実行しようとしていると思います。

代替案

axlsxは、acts_as_xlsx がラップする親 gem です。シリアル化するデータを取り、必要に応じてヘッダーとスタイルを適用できるビュー オブジェクトまたはレポート生成クラスをアプリケーション内に作成する必要があります。

rails_axlsx は axlsx に基づくもう 1 つの gem で、ビューを作成し、スプレッドシートの生成方法をより詳細に制御できます。直接 axlsx に移動するよりも簡単にジャンプできます。

于 2013-10-02T16:40:08.733 に答える