リンクに色を適用する前に、次の 2 つの重要な作業を行う必要があります。
- スタイル内で色を定義する必要があり、
- 問題のセルの正確なアドレスを知っている必要があります。
スタイルは通常行に適用されますが、今回は特定のセルに適用したいと考えています。これは可能ですが、シート オブジェクトを介してセルを直接アドレス指定する必要があります。また、直観に反して、「add_hyperlink」メソッドは、Cell ではなく Sheet オブジェクトで使用できます。ということで、こちらも気をつけてください。
リンクを含むセルにスタイルを適用する方法の例を次に示します。
p = Axlsx::Package.new
p.workbook do |wb|
wb.styles do |s|
blue_link = s.add_style :fg_color => '0000FF'
wb.add_worksheet(:name => "Anchor Link Test") do |sheet|
sheet.add_row ['Title', 'Link']
# Define the row here, we will use that later
row = sheet.add_row ['Google', 'Click to go']
# Add the hyperlink by addressing the column you have used and add 1 to the row's index value.
sheet.add_hyperlink :location => "http://www.google.com", :ref => "B#{row.index + 1}"
sheet["B#{row.index + 1}"].style = blue_link
end
s = p.to_stream()
File.open("anchor_link_test.xlsx", 'w') { |f| f.write(s.read) }
end
end
最後の注意: このスプレッドシートは、メソッドを使用して作成したことに注意してください。
s = p.to_stream()
File.open("anchor_link_test.xlsx", 'w') { |f| f.write(s.read) }
Axlsx Github Issues Pageに提示された証拠があり、ファイルを書き出すこの方法は、
p.serialize
StackOverflow のどこかで言及するに値すると思いました!