1

次のような数値形式でユーロ記号を追加しようとしています。

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 に表示するのに問題があった人はいますか?

4

2 に答える 2

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'
于 2012-04-11T14:20:55.163 に答える
0

この構文は動作するはずですが (移植元の Perl モジュールで動作します)、サブクラスの 1 つにバグがあります。

報告します。

それまでの間、同じ作者によるwrite_xlsx gem を試すことができます。これは、XLSX ファイル形式を対象とすることを除いて、writeexcel の API 互換の代替品です。

更新 1:問題が報告されました。

更新 2:問題が修正されました。

于 2012-04-12T09:57:56.247 に答える