フォーマッタをセルに設定すると外部からのコピーしたデータのペーストが不可になる

文書番号 : 40289     文書種別 : 不具合     登録日 : 2017/04/12     最終更新日 : 2017/04/12
文書を印刷する
対象製品
SpreadJS 9J
発生環境
9.20171.0
状況
回避方法あり
詳細
製品のフォーマッタ機能を使用してセルに書式設定を行った状態において、外部からコピーしたデータの貼り付けができなくなる現象が発生します。

【再現方法】
1.本ページ下部にある【再現コード】を実行します
2.テキストエディタなどを実行し、任意の文字列を入力します("123"など)
3.テキストエディタで入力した文字列をコピーします
4.セルA1上でCrtl+Vキーを押下し、コピーした文字列の貼り付けを実行します

【動作結果】
貼り付けが実行されない現象が発生します

【再現コード】
--------------------------------------------------
window.onload = function () {
  var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
  var sheet = spread.getSheet(0);

  sheet.getCell(0, 0).formatter("@");
};
--------------------------------------------------
回避方法
再現コードに対し、下記のようなコードを追加することで現象の回避が可能です。

【再現コードに対応する回避コードの適用例】
--------------------------------------------------
window.onload = function () {
  var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
  var sheet = spread.getSheet(0);

  sheet.getCell(0, 0).formatter("@");
};

//【回避方法】以下を追加します
String.prototype.parse = function(text){
    var result = text;
    if(GC.Spread.Formatter){
    result = new GC.Spread.Formatter.GeneralFormatter(this.valueOf()).parse(text);
    }
    return result===void 0 ||result===null?text:result;
}
--------------------------------------------------