1

Spreadsheet gem と Ruby on Rails を使用して、データを Excel ファイルにエクスポートしています。Excel ファイルにヘッダーとフッターを追加したいと考えています。問題は、これを行っているときに、著作権記号、アンパサンド記号、および登録済み記号が表示されないことです。マルチバイト文字エラーをスローするか、単に何も表示しません。

私は同様の問題をすべて経験し、# utf-8 のエンコードと " # - - コーディング: 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 リトル エンディアン) を使用しています。"\u00a9".encode('UTF-16LE')これは、これを機能させるために、を使用して非標準文字をエンコードする必要があることを意味する場合があります...

于 2012-08-29T04:58:23.007 に答える