带有欧元符号的Ruby WriteExcel number_format

时间:2012-04-10 20:54:35

标签: ruby spreadsheet

我试图以这样的数字格式添加欧元符号:

workbook.add_format(:num_format => "[$€-2] #,##0.00")

错误:

'store_num_format': Uneven number of bytes in Unicode font name

默认情况下,文档字体为Arial。 我可以将其更改为美元符号并且可以正常工作。

workbook.add_format(:num_format => "[$$-409]#,##0.00")

任何人都有问题让欧元符号显示在WriteExcel中?

2 个答案:

答案 0 :(得分:3)

这不会直接回答您的问题,但您确实应该考虑查看axlsx。它正确处理字符串编码,并提供更好的API。

示例:

# encoding: UTF-8
require 'axlsx'
p = Axlsx::Package.new
wb = p.workbook

euro = wb.styles.add_style(:format_code => "[$€-2] #,##0.00")

wb.add_worksheet do |sheet|
  100.times do |i|
    sheet.add_row [100*i], :style => euro
  end
end

p.serialize '/tmp/test.xlsx'

答案 1 :(得分:0)

该语法应该有效,(它在移植它的Perl模块中工作),但是其中一个子类中存在错误。

我会报告。

与此同时,您可以尝试同一作者的write_xlsx gem,它是与writeexcel的API兼容替代品,除了它以XLSX文件格式为目标。

更新1:Issue reported

更新2:Issue fixed