Excel
Excel sağlayıcısı dışa aktarma işlemlerinde exceljs kullanır.
Sağlayıcı parametreleri
Bu sağlayıcı, type alanı excel olduğunda seçilir.
Zorunlu alanlar
| Alan | Tip | Zorunlu | Not |
|---|---|---|---|
type | 'excel' | ✅ Evet | excel olmalı. |
data | Array<object> | ✅ Evet | Satırları temsil eden obje dizisi. |
options (opsiyonel)
| Alan | Tip | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|
options.headers | string[] | ❌ Hayır | — | Verilirse kolon sırası/key listesi olur. Verilmezse ilk satırın key’lerinden türetilir. |
options.headersMap | Record<string,string> | ❌ Hayır | — | Field key’lerini kolon başlığına map eder. |
options.sheetName | string | ❌ Hayır | Sheet1 | Worksheet adı. |
options.columnOptions | Record<string, { width?: number; style?: { numFmt?: string } }> | ❌ Hayır | — | Field adına göre kolon opsiyonları (genişlik ve number format). |
Örnek
export.service.ts
import { Injectable } from '@nestjs/common';
import { DataExporterService } from 'nestjs-export-module';
@Injectable()
export class ExportService {
constructor(private readonly exporter: DataExporterService) {}
async exportExcel(rows: Array<object>) {
return this.exporter.exportAsync({
type: 'excel',
data: rows,
options: {
sheetName: 'Users',
headers: ['id', 'name', 'salary'],
headersMap: { id: 'ID', name: 'Name', salary: 'Salary' },
columnOptions: {
salary: { width: 16, style: { numFmt: '#,##0.00' } },
},
},
});
}
}
Notlar
- Daha zengin tablo senaryoları için uygundur (çoklu sayfa, formatlama vb.).
- Bu sağlayıcı
{ mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', extension: 'xlsx', data: Buffer }döndürür.