在将颜色应用于链接之前,有两件重要的事情要做:
- 您必须在样式中定义颜色,并且
- 您必须知道相关单元的确切地址。
样式通常应用于行,但在这种情况下,您希望将其应用于特定单元格。这是可能的,但您需要直接通过工作表对象来寻址单元格。此外,有点反直觉的是,“add_hyperlink”方法可用于工作表对象,而不是单元格。所以也要注意这一点。
以下是如何将样式应用于包含链接的单元格的示例:
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 问题页面上有证据表明这种写出文件的方法比
p.serialize
只是认为在 StackOverflow 上的某处值得一提!