Gem axlsx如何设置字体font_name?

gre*_*nif 4 ruby axlsx

我使用axlsx gem来处理xlsx文件.请帮我在工作表单元格中设置字体.

item_style = s.add_style :b => false, :sz => 9,  :font_name => 'courier',
      :alignment => { :horizontal => :left, :vertical => :center, :wrap_text => true}
row = sheet.add_row [item.name, item.price], :style => item_style
Run Code Online (Sandbox Code Playgroud)

但是单元格中的字体仍然是'Arial'.我需要任何'单声道宽度'字体.我知道'courier'不是单宽字体,仅举例说明.

因为我有固定的列宽.我想知道单元格中的文本何时需要2行.设置适当的行高.

谢谢.

ran*_*dym 7

看看你的风格宣言,对我来说似乎是合适的.冒着迂腐的风险,你应该大写字体名称.

结合你的位和来自acsmith的好例子,以下代码在excel中应该可以正常工作.您使用哪些软件来查看Axlsx文件?并非所有电子表格软件都完全/实现OOXML规范.

require 'axlsx'
p = Axlsx::Package.new
wb = p.workbook
item_style = wb.styles.add_style :b => false, :sz => 9,  :font_name => 'Courier',
  :alignment => { :horizontal => :left, :vertical => :center, :wrap_text => true}
wb.add_worksheet(:title => "Worksheet 1") do |sheet|
  sheet.add_row(["text in Courier"], :style => item_style)
end
p.serialize("courier.xlsx")
Run Code Online (Sandbox Code Playgroud)

最好

randym


acs*_*ith 2

我建议尝试以下小示例并确保它有效。您需要将整个内容放在样式块中。

p = Axlsx::Package.new
  wb = p.workbook
  wb.styles do |s|
    courier = s.add_style :font_name => "Courier"
    wb.add_worksheet(:title => "Worksheet 1") do |sheet|
      sheet.add_row(["text in Courier"], :style => courier)
    end
  end
p.serialize("Courier.xlsx")
Run Code Online (Sandbox Code Playgroud)

我没有太多使用 axlsx,但我相信使用的任何样式都必须在样式块中声明,并在该块中使用。