作成日: 2024/12/19 最終更新日: 2025/05/14
文書種別
不具合
発生環境
5.20203.766以降のバージョンで発生
状況
修正済み
詳細
ループ処理内でloadAsyncメソッドを利用し、Excelファイルを読み取ると以下のスクリプトエラーが発生します。
TypeError: Cannot read properties of null
回避方法
この問題はバージョン5.20251.34で修正されました。
修正版を適用しない場合の回避方法は次の通りです。
async/awaitとpromiseを使用して、順次読み込みを実行していきます。
onClick('loadXlsx', async () => {
let inputEle = document.querySelector('#importFile');
const file = inputEle.files[0];
try {
for (let i = 0; i < 2; i++) {
await loadFileSequentially(file, i); // 現在のファイルが完全に読み込まれるまで待機します
}
} catch (error) {
console.error('Error loading file:', error);
}
});
async function loadFileSequentially(file, index) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = () => {
const wb = new Workbook();
wb.loadAsync(
reader.result,
(workbook) => {
console.log(index, workbook.sheets[0].name);
resolve(); //ファイルが完全に読み込まれたらpromiseを解決します
},
(error) => {
console.log(index, error);
reject(error); // エラーが発生した場合はPromiseをrejectします
}
);
};
reader.onerror = () => reject(reader.error);
reader.readAsDataURL(file);
});
}