行数の多いExcelシートの値を2次元配列変数に格納(pushメソッド)したいです。
Q&A
Closed
解決したいこと
Sharepoint内のExcelシートに1万行以上の表があります。
行列の2次元配列になると思いますが、配列変数(cellData)にfor文(行、列のインデックスをカウンタとして使用)とpushメソッドを用いています。
2回目のfor(列カウンタ)のところでシート範囲の値(values[行][列])を変数(data)に格納し、
それを、cellDataにpushで格納しようとしていますが、dataに格納する行でプロパティが読めないとのエラーが出ます。
最終的に、このcellDataを他のスクリプトに渡して、別のシートに入力するのが目的です。
エラー原因と解決法をご教授いただければ幸いです。
発生している問題・エラー
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
該当するソースコード
function main(workbook: ExcelScript.Workbook) {
let selectedSheet = workbook.getActiveWorksheet();
//最終行を取得
let lastRow = selectedSheet.getCell(0, 0).getRangeEdge(ExcelScript.KeyboardDirection.down).getRowIndex();
// 最終列を取得
let lastCL = selectedSheet.getRange("AAA1").getRangeEdge(ExcelScript.KeyboardDirection.left).getColumnIndex();
// 最終行と最終列の値を取得して変数に。
let values = selectedSheet.getRangeByIndexes(0, 0, lastRow, lastCL).getValues()
//行数RWと列数CLをカウンターにしてfor文。results[行数RW][列数CL]でpush。
let cellData: string[][]=[]
for(let RW =0; RW < lastRow+1; RW++){
for(let CL=0; CL < lastCL+1; CL++){
let data = [values[RW][CL]]; ←エラー箇所です。
cellData.push(data)
}
}
}
自分で試したこと
for文内でちゃんとカウンターが動いているかどうかを確認したところ、順番ずつ1行目から値を読み込んでいるので、機能はしているようです。