- workbook
하나의 파일
- worksheet
workbook 안에 존재하는 여러개의 sheet 들

# workbook 생성
const workbook = XLSX.utils.book_new();
# worksheet 에 추가할 데이터 생성
const worksheet = XLSX.utils.json_to_sheet(data);
# workbook 에 testName 이라는 worksheet 생성
workbook.SheetNames.push('testName');
# testName 이라는 worksheet 에 데이터 할당
workbook.Sheets['testName'] = worksheet;
# workbook 을 특정 경로에 파일로 생성
XLSX.writeFile(workbook, 'route');
async uploadKbExcelToS3() {
return new Promise((resolve, reject) => {
const source = fs.createReadStream(
path.resolve(__dirname, '../../uploads/test.xlsx'),
);
const destination = fs.createWriteStream(
path.resolve(__dirname, '../../uploads/test_final.xlsx'),
);
source.pipe(destination);
destination.on('finish', async () => {
try {
const workbook = new ExcelJS.Workbook();
await workbook.xlsx.readFile(
path.resolve(__dirname, '../../uploads/test_final.xlsx'),
);
const worksheet = workbook.getWorksheet(1);
worksheet.eachRow({ includeEmpty: false }, (row) => {
row.eachCell({ includeEmpty: false }, (cell: any) => {
cell.fill / cell.border / cell.font 값과 같은 값 작업
});
});
const cellF3 = worksheet.getCell('F3');
const originalStyleF3 = { ...cellF3.style };
cellF3.value = ...
cellF3.style = ...
const buffer = await workbook.xlsx.writeBuffer();
await S3UploadExcel();
resolve('File updated successfully');
} catch (error) {
reject(error);
}
});
destination.on('error', (error) => {
reject(error);
});
});
}