作成日: 2025/04/30 最終更新日: 2025/07/02
文書種別
不具合
状況
修正済み
詳細
テキストの先頭または末尾に全角の空白文字がある場合、フィルタリング機能の動作がExcelと異なります。
SpreadJSでは、フィルタのダイアログのリストに、空白文字がトリムされて表示されますが、Excelでは空白文字はトリムせずに表示されます。
この状態で、テキストをフィルタリングしてExcelにエクスポートすると、エクスポートしたExcelファイルでフィルタの設定が不正になります。
半角の空白文字の場合は問題ありません。
回避方法
SpreadJS (Ver.18.1.4)で修正済み。
フィルタリストを作成する際、SpreadJSはJavaScriptの標準のトリム機能を使用しています。
Ver.18.1.4より前のバージョンでは、以下のようにトリム処理をカスタマイズして、全角の空白文字をトリムしないように変更することで問題を回避することができます。
// 回避方法
function trim32(str) {
// 何を空白文字とみなすか定義する (32の空白文字のみ)
const space = ' ';
// トリム開始
let start = 0;
while (start < str.length && str[start] === space) {
start++;
}
// トリム終了
let end = str.length - 1;
while (end >= 0 && str[end] === space) {
end--;
}
// トリムした文字列を返す
return start > end ? '' : str.slice(start, end + 1);
}
String.prototype.trim = function () {
return trim32(this);
};