exceljs
npm i exceljs
const ExcelJS = require('exceljs');
async function createTestExcel() {
const workbook = new ExcelJS.Workbook();
// 🔹 Workbook özellikleri
workbook.creator = 'ABC Teknoloji A.Ş.';
workbook.created = new Date();
const worksheet = workbook.addWorksheet('HeaderFooterTest', {
pageSetup: {
paperSize: 9, // A4
orientation: 'portrait'
}
});
// 🔹 KURUMSAL HEADER & FOOTER
worksheet.headerFooter = {
// İlk sayfa header
firstHeader:
'&L&"Arial,Bold"&14ABC TEKNOLOJİ A.Ş.' +
'&C&"Arial,Bold"&16SATIŞ RAPORU' +
'&R&"Arial"&10Versiyon 1.0',
// Tek sayfalar
oddHeader:
'&L&"Arial,Bold"&12ABC TEKNOLOJİ A.Ş.' +
'&C&"Arial,Bold"&14SATIŞ RAPORU' +
'&R&"Arial"&10Sayfa &P / &N',
// Çift sayfalar
evenHeader:
'&L&"Arial"&10SATIŞ RAPORU' +
'&C&"Arial,Bold"&12ABC TEKNOLOJİ A.Ş.' +
'&R&"Arial"&10Sayfa &P / &N',
// İlk sayfa footer
firstFooter:
'&C&"Arial"&9Bu doküman ABC Teknoloji A.Ş. mülkiyetindedir.',
// Tek sayfa footer
oddFooter:
'&L&"Arial"&9Gizli / Confidential' +
'&C&"Arial"&9Oluşturma Tarihi: &D' +
'&R&"Arial"&9Saat: &T',
// Çift sayfa footer
evenFooter:
'&L&"Arial"&9Gizli / Confidential' +
'&C&"Arial"&9Oluşturma Tarihi: &D' +
'&R&"Arial"&9Saat: &T'
};
// 🔹 Kolonlar
worksheet.columns = [
{ header: 'ID', key: 'id', width: 10 },
{ header: 'Ürün', key: 'name', width: 30 },
{ header: 'Fiyat', key: 'price', width: 15 }
];
// 🔹 TABLE TEST
worksheet.addTable({
name: 'TestTable',
ref: 'A1',
headerRow: true,
totalsRow: true,
style: {
theme: 'TableStyleMedium9',
showRowStripes: true
},
columns: [
{ name: 'ID', totalsRowLabel: 'Toplam:' },
{ name: 'Ürün' },
{ name: 'Fiyat', totalsRowFunction: 'sum' }
],
rows: [
[1, 'Kalem', 10],
[2, 'Defter', 25],
[3, 'Silgi', 5]
]
});
// 🔹 Sayfa kırılımı testi
for (let i = 4; i <= 60; i++) {
worksheet.addRow([i, `Ürün ${i}`, i * 2]);
}
// 🔹 Yazdırma ayarları
worksheet.pageSetup.printTitlesRow = '1:1';
worksheet.pageSetup.fitToPage = true;
await workbook.xlsx.writeFile('excel-header-footer-test.xlsx');
console.log('✅ excel-header-footer-test.xlsx oluşturuldu');
}
createTestExcel();