1

我正在使用电子表格 gem 和 Ruby on Rails 将我的数据导出到一个 excel 文件中。我想在我的 excel 文件中添加页眉和页脚。问题是当我这样做时,版权符号、& 符号和注册符号没有显示。它要么抛出多字节字符错误,要么根本不显示任何内容。

我经历了所有类似的问题,甚至尝试过# encoding utf-8和“ # - - coding: utf-8 - - ”。这是没有用的。当我尝试使用转义序列(“\u00A9” - © 的 unicode 代码)时,文件格式已损坏。这个问题的任何可能的解决方案?我错过了什么吗?请帮忙。

提前致谢

4

1 回答 1

0

这段代码对我有用:

def do_test
  book = Spreadsheet::Workbook.new
  sheet1 = book.create_worksheet
  sheet1[0,0] = "\u00a9"
  book.write "./sample.xls"
end

您可能在某些时候将电子表格编码设置为 UTF-8 以外的其他编码。您可以查看Spreadsheet.client_encoding正在使用的内容。

更新

add_header/footer代码非常特定于编码。这是使用的代码:

def write_header
  write_op opcode(:header), [@worksheet.header.bytesize, 0].pack("vC"), @worksheet.header
end

Excel 编写器默认使用 Unicode-1200(UTF-16 little endian)。这可能意味着您需要使用任何非标准字符编码"\u00a9".encode('UTF-16LE')才能使其正常工作......

于 2012-08-29T04:58:23.007 回答