반응형
Excel 파일을 만들고 ExcelJS로 쓰기
나는 엑셀로 새로운 엑셀 파일을 만드는 스크립트를 작성했습니다.JS. 헤더 3개를 추가하고 행 2개를 삽입합니다.그런 다음 해당 파일을 디스크에 저장합니다.
다음 단계에서는 이전에 저장한 파일을 읽고 한 행을 추가한 다음 새 이름으로 다시 저장해야 합니다.제가 세 번째 줄을 추가하려고 하는 두 번째 부분이 왜 발생하지 않는지 이유를 찾을 수 없습니다.두 파일 모두 동일하게 보이며 콘솔에 오류가 없습니다.
const Excel = require('exceljs');
async function exTest(){
const workbook = new Excel.Workbook();
const worksheet = workbook.addWorksheet("My Sheet");
worksheet.columns = [
{header: 'Id', key: 'id', width: 10},
{header: 'Name', key: 'name', width: 32},
{header: 'D.O.B.', key: 'dob', width: 15,}
];
worksheet.addRow({id: 1, name: 'John Doe', dob: new Date(1970, 1, 1)});
worksheet.addRow({id: 2, name: 'Jane Doe', dob: new Date(1965, 1, 7)});
// save under export.xlsx
await workbook.xlsx.writeFile('export.xlsx');
// load a copy of export.xlsx
const newWorkbook = new Excel.Workbook();
await newWorkbook.xlsx.readFile('export.xlsx');
const newworksheet = newWorkbook.getWorksheet('My Sheet');
newworksheet.addRow(
{id: 3, name: 'New Guy', dob: new Date(2000, 1, 1)}
);
await newWorkbook.xlsx.writeFile('export2.xlsx');
console.log("File is written");
};
exTest();
코드의 두 번째 부분에 열을 설명하는 배열을 추가하여 해결했습니다.그런 다음 세 번째 행이 성공적으로 추가되었습니다.열 이름을 가진 객체를 전달할 때addRow()엑셀 파일에 이미 존재하는 열에 대한 설명을 제공해야 했습니다.
const Excel = require('exceljs');
async function exTest(){
const workbook = new Excel.Workbook();
const worksheet = workbook.addWorksheet("My Sheet");
worksheet.columns = [
{header: 'Id', key: 'id', width: 10},
{header: 'Name', key: 'name', width: 32},
{header: 'D.O.B.', key: 'dob', width: 15,}
];
worksheet.addRow({id: 1, name: 'John Doe', dob: new Date(1970, 1, 1)});
worksheet.addRow({id: 2, name: 'Jane Doe', dob: new Date(1965, 1, 7)});
// save under export.xlsx
await workbook.xlsx.writeFile('export.xlsx');
//load a copy of export.xlsx
const newWorkbook = new Excel.Workbook();
await newWorkbook.xlsx.readFile('export.xlsx');
const newworksheet = newWorkbook.getWorksheet('My Sheet');
newworksheet.columns = [
{header: 'Id', key: 'id', width: 10},
{header: 'Name', key: 'name', width: 32},
{header: 'D.O.B.', key: 'dob', width: 15,}
];
await newworksheet.addRow({id: 3, name: 'New Guy', dob: new Date(2000, 1, 1)});
await newWorkbook.xlsx.writeFile('export2.xlsx');
console.log("File is written");
};
exTest();
작업 링크가 첨부
const Excel = require('exceljs');
// Create workbook & add worksheet
const workbook = new Excel.Workbook();
const worksheet = workbook.addWorksheet('ExampleSheet');
// add column headers
worksheet.columns = [
{ header: 'Package', key: 'package_name' },
{ header: 'Author', key: 'author_name' }
];
// Add row using key mapping to columns
worksheet.addRow(
{ package_name: "ABC", author_name: "Author 1" },
{ package_name: "XYZ", author_name: "Author 2" }
);
// Add rows as Array values
worksheet
.addRow(["BCD", "Author Name 3"]);
// Add rows using both the above of rows
const rows = [
["FGH", "Author Name 4"],
{ package_name: "PQR", author_name: "Author 5" }
];
worksheet
.addRows(rows);
// save workbook to disk
workbook
.xlsx
.writeFile('sample.xlsx')
.then(() => {
console.log("saved");
})
.catch((err) => {
console.log("err", err);
});
https://repl.it/ @vishwasc/ExcelJs-Example#index.js
이미지 첨부 파일
// add image to workbook by filename
const imageId1 = workbook.addImage({
filename: 'path/to/image.jpg',
extension: 'jpeg',
});
// add image to workbook by buffer
const imageId2 = workbook.addImage({
buffer: fs.readFileSync('path/to.image.png'),
extension: 'png',
});
// add image to workbook by base64
const myBase64Image = "data:image/png;base64,iVBORw0KG...";
const imageId2 = workbook.addImage({
base64: myBase64Image,
extension: 'png',
});
두 경우 모두 확장자를 지정해야 합니다.유효한 확장자 값에는 'jpeg', 'png', 'gif'가 포함됩니다.
나는 아래 코드를 사용하여 링크에서 솔루션을 가져왔습니다. 그것은 나에게 잘 작동합니다.저는 그것이 여러분에게도 도움이 되기를 바랍니다.감사합니다 :)
const ExcelJS = require('exceljs');
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('Sheet 1');
worksheet.columns = [
{ header: 'Name', key: 'name', width: 20 },
{ header: 'Email', key: 'email', width: 25 },
{ header: 'Age', key: 'age', width: 10 }
];
worksheet.addRow({ name: 'John Doe', email: 'johndoe@example.com', age: 30 });
worksheet.addRow({ name: 'Jane Smith', email: 'janesmith@example.com', age: 25 });
workbook.xlsx.writeFile('example.xlsx')
.then(() => {
console.log('Excel file created!');
})
.catch((error) => {
console.log(error);
});
언급URL : https://stackoverflow.com/questions/55132760/creating-excel-file-and-writing-to-it-with-exceljs
반응형
'programing' 카테고리의 다른 글
| Oracle: 비교 작업에서 하위 쿼리의 공백이 있는 별칭을 참조하는 방법 (0) | 2023.08.09 |
|---|---|
| git와 gnome-keyring 통합 사용 방법 (0) | 2023.08.09 |
| Angular 2 구성 요소 @입력이 작동하지 않음 (0) | 2023.08.09 |
| TNSPING은 괜찮지만 sqlplus는 ORA-12154를 제공합니까? (0) | 2023.08.09 |
| MySQL에서 텍스트 필드를 인덱싱하거나 검색 가능하게 만드는 방법은 무엇입니까? (0) | 2023.08.09 |