フォーマッタをセルに設定すると外部からのコピーしたデータのペーストが不可になる
対象製品
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("@");
};
--------------------------------------------------
【再現方法】
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;
}
--------------------------------------------------
【再現コードに対応する回避コードの適用例】
--------------------------------------------------
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;
}
--------------------------------------------------