promise 처리 완료.

This commit is contained in:
truthwing
2025-04-24 15:46:31 +09:00
parent 31aa0e078a
commit cb546b8cfa
@@ -14,32 +14,39 @@ export const downloadExcel = ({ data, fileName = new Date().getTime().toString()
//XLSX.write(workbook, { bookType: "xlsx", type: "binary" });
XLSX.writeFile(workbook, fileName + '.xlsx');
};
export const filePicked=(oFile: File, headerNum:number=0) =>{
export const filePicked=(oFile: File, headerNum:number=0):Promise<JSON | undefined> =>{
// Create A File Reader HTML5
const reader = new FileReader();
// Ready The Event For When A File Gets Selected
reader.onload = function (e) {
const data = e.target?.result;
if (!data) {
console.error("Failed to read file: e.target.result is null");
return;
}
const wb = XLSX.read(data, { type: 'binary' });
// Loop Over Each Sheet
wb.SheetNames.forEach(function (sheetName) {
// Obtain The Current Row As CSV
const sheet = wb.Sheets[sheetName];
if (sheet) {
const jsonXls = XLSX.utils.sheet_to_json(sheet, {range:headerNum});
return jsonXls;
} else {
console.error(`Sheet "${sheetName}" is undefined.`);
return new Promise<JSON | undefined>((resolve, reject) => {
// Ready The Event For When A File Gets Selected
reader.onload = function (e) {
const data = e.target?.result;
if (!data) {
console.error("Failed to read file: e.target.result is null");
resolve(undefined);
return;
}
return null;
});
};
const wb = XLSX.read(data, { type: 'binary' });
let jsonXls: JSON | undefined;
// Loop Over Each Sheet
wb.SheetNames.forEach(function (sheetName) {
// Obtain The Current Row As CSV
const sheet = wb.Sheets[sheetName];
if (sheet) {
jsonXls = XLSX.utils.sheet_to_json(sheet, { range: headerNum }) as unknown as JSON;
} else {
console.error(`Sheet "${sheetName}" is undefined.`);
}
});
resolve(jsonXls);
};
// Tell JS To Start Reading The File.. You could delay this if desired
reader.readAsBinaryString(oFile);
reader.onerror = function () {
console.error("Error reading file");
reject(undefined);
};
// Tell JS To Start Reading The File.. You could delay this if desired
reader.readAsBinaryString(oFile);
});
}