作成日: 2024/03/07 最終更新日: 2024/03/07
文書種別
制限事項
発生環境
17.0.0以降
詳細
シートにデータソースを連結した場合、rowCountはシートの行数ではなく、データソースのlengthを取得するため-1を返します。また、データソースを連結した場合以外に、行全体や列全体に対してスタイルを設定した場合もrowCountやcolCountが-1を返します。
例)行全体に背景色を設定して行数を取得するとき、Ver.16.2.6まではデフォルトの200を返しますが、Ver.17.0.0から-1を返します。
const spread = new GC.Spread.Sheets.Workbook(document.querySelector("#ss"));
const sheet = spread.getActiveSheet();
var style = new GC.Spread.Sheets.Style();
style.backColor = 'green';
sheet.setStyle(-1, 0, style);
document.querySelector("#test").onclick = function () {
const range = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.all);
console.log(`UsedRange.rowCount=${range.rowCount}`);
console.log(range);
};
回避方法
下記のコードを追加して、rowCountおよびcolCountを取得します。
let orgFunc = GC.Spread.Sheets.Worksheet.prototype.getUsedRange;
GC.Spread.Sheets.Worksheet.prototype.getUsedRange = function () {
let range = orgFunc.apply(this, arguments);
let { row, rowCount, col, colCount } = range;
range.rowCount = rowCount === -1 ? this.getRowCount() : rowCount;
range.colCount = colCount === -1 ? this.getColumnCount() : colCount;
return range;
}