フォーマット文字列の文字色をカラー名で指定すると、フィルタの形式が日付型になる

文書番号 : 84684     文書種別 : 不具合     登録日 : 2019/11/29     最終更新日 : 2020/01/22
文書を印刷する
対象製品
SpreadJS(Ver.10.x.x -)
状況
修正済み
詳細
フォーマット文字列の文字色をカラー名で指定すると、フィルタの形式が日付型に設定されてしまいます。

【再現手順】
1. 下記のチュートリアルを開く
チュートリアル

2. JavaScriptタブを選択し、initSpread関数に下記のサンプルコードを追記する

★サンプルコード(JavaScript)
function initSpread(spread) {
 var sheet = spread.getSheet(0);
 //フォーマットを追加
 sheet.getRange(2, 4, 10, 1).formatter("0_);[Red]\(0\)");
 ~~以下省略~~
}

3. 「スクリプトを実行する」ボタンを押下する

4. SaleAmt列(数値型)に設定されているフィルタダイアログを表示する

5. フィルターの表示を確認すると「日付フィルター」と表示されている
回避方法
SpreadJS (Ver.13.0.4)で修正済み

Ver.13.0.4より前のバージョンでは次の方法で回避可能です。

フォーマット文字列の文字色をrgb指定にすることで回避することができます。

★サンプルコード(JavaScript)
//OK
sheet.getRange(2, 4, 10, 1).formatter("0_);[#FF0000]\(0\)");
//NG
// sheet.getRange(2, 4, 10, 1).formatter("0_);[Red]\(0\)");

なお、注意事項としてExcelがrgb指定に対応していないため、上記回避方法を行った状態でExcel出力を行うと、変換エラーが発生します。