Tuesday, 6 June 2017

xlsx package from npmjs for NodeJS, how to write XLSX file?

I'm trying to write an xlsx file. First it read a workbook from a template file (templateempty.xlsx) Then, I writeFile using that workbook. It then produces a file with empty worksheets. What I want to do is fiddle with the 2nd workbook (wb2), to add data into it. So I read the worksheet and place it into var ws. Right now I'm just adding data from cell A1 to A(nth) by looping through it.

If I console.log(wb2), it's gonna show me that I've added the data into wb2.

Here's my code

var wopts =  {bookType:'xlsx', bookSST:true, type: 'binary'};
var wopts2 =  {bookType:'xlsx', bookSST:true, type: 'file'};
var workbook = XLSX.readFile(__dirname+'/file/'+'templateempty.xlsx');
XLSX.writeFile(workbook, __dirname+'/file/'+'test.xlsx');
var wb2 = XLSX.readFile(__dirname+'/file/'+'test.xlsx');
var counter = 0;
var ws = wb2.Sheets['Sheet1'];


/*Just printing the header of SQL result into 1st row of worksheet*/
for(var key in data[0]) {
if(data[0].hasOwnProperty(key)) {
// console.log(key, params[key]);
counter++;
var a = 'A';
a+=counter;
if(data[0][key] == null) {
data[0][key] = '';
}
ws[a] = {t: 's', v: key, h: key, w: key};
}
}
console.log('wb2', wb2);  
XLSX.writeFile(wb2, __dirname+'/file/'+'test2.xlsx')
var wb3 = XLSX.readFile(__dirname+'/file/'+'test2.xlsx');
console.log('wb3', wb3);

the result of console.log would be

wb2 { A1: { t: 's', v: 'kode_batch', h: 'kode_batch', w: 'kode_batch' },
A2: { t: 's', v: 'nokep', h: 'nokep', w: 'nokep' },
A3:
{ t: 's',
v: 'norek_pinjaman',
h: 'norek_pinjaman',
w: 'norek_pinjaman' },
A4:
{ t: 's',
v: 'PRODUCT_CODE_PINJAMAN_DESC',
h: 'PRODUCT_CODE_PINJAMAN_DESC',
w: 'PRODUCT_CODE_PINJAMAN_DESC' },
A5:
{ t: 's',
v: 'JANGKA_WAKTU_TAHUN',
h: 'JANGKA_WAKTU_TAHUN',
w: 'JANGKA_WAKTU_TAHUN' },
A6:
{ t: 's',
v: 'JANGKA_WAKTU_BULAN',
h: 'JANGKA_WAKTU_BULAN',
w: 'JANGKA_WAKTU_BULAN' },
A7: { t: 's', v: 'CABANG', h: 'CABANG', w: 'CABANG' },
A8:
{ t: 's',
v: 'NAMA_UKER_CABANG',
h: 'NAMA_UKER_CABANG',
w: 'NAMA_UKER_CABANG' },
A9: { t: 's', v: 'UNIT', h: 'UNIT', w: 'UNIT' },
A10:
{ t: 's',
v: 'NAMA_UKER_UNIT',
h: 'NAMA_UKER_UNIT',
w: 'NAMA_UKER_UNIT' },
A11:
{ t: 's',
v: 'no_identitas',
h: 'no_identitas',
w: 'no_identitas' },
A12:
{ t: 's',
v: 'Nama_Peserta',
h: 'Nama_Peserta',
w: 'Nama_Peserta' },
A13: { t: 's', v: 'Address', h: 'Address', w: 'Address' },
A14: { t: 's', v: 'HP', h: 'HP', w: 'HP' },
A15:
{ t: 's',
v: 'nama_penerima_manfaat',
h: 'nama_penerima_manfaat',
w: 'nama_penerima_manfaat' },
A16:
{ t: 's',
v: 'HUB_DENGAN_PESERTA',
h: 'HUB_DENGAN_PESERTA',
w: 'HUB_DENGAN_PESERTA' },
A17:
{ t: 's',
v: 'alamat_penerimaManfaat',
h: 'alamat_penerimaManfaat',
w: 'alamat_penerimaManfaat' },
A18:
{ t: 's',
v: 'hp_penerimaManfaat',
h: 'hp_penerimaManfaat',
w: 'hp_penerimaManfaat' },
A19:
{ t: 's',
v: 'nokep_pasangan',
h: 'nokep_pasangan',
w: 'nokep_pasangan' },
A20:
{ t: 's',
v: 'no_identitas_pasangan',
h: 'no_identitas_pasangan',
w: 'no_identitas_pasangan' },
A21:
{ t: 's',
v: 'nama_pasangan',
h: 'nama_pasangan',
w: 'nama_pasangan' },
A22: { t: 's', v: 'hp_pasangan', h: 'hp_pasangan', w: 'hp_pasangan' },
A23:
{ t: 's',
v: 'NamaPenerimaManfaaf_pasangan',
h: 'NamaPenerimaManfaaf_pasangan',
w: 'NamaPenerimaManfaaf_pasangan' },
A24:
{ t: 's',
v: 'HubPenerimaManfaaf_pasangan',
h: 'HubPenerimaManfaaf_pasangan',
w: 'HubPenerimaManfaaf_pasangan' },
A25:
{ t: 's',
v: 'AlamatPenerimaManfaaf_pasangan',
h: 'AlamatPenerimaManfaaf_pasangan',
w: 'AlamatPenerimaManfaaf_pasangan' },
A26:
{ t: 's',
v: 'HpPenerimaManfaaf_pasangan',
h: 'HpPenerimaManfaaf_pasangan',
w: 'HpPenerimaManfaaf_pasangan' },
A27:
{ t: 's',
v: 'PremiPerTahun_Peserta',
h: 'PremiPerTahun_Peserta',
w: 'PremiPerTahun_Peserta' },
A28:
{ t: 's',
v: 'PremiPerTahun_Pasangan',
h: 'PremiPerTahun_Pasangan',
w: 'PremiPerTahun_Pasangan' },
A29:
{ t: 's',
v: 'JANGKA_WAKTU_COVERING',
h: 'JANGKA_WAKTU_COVERING',
w: 'JANGKA_WAKTU_COVERING' },
A30:
{ t: 's',
v: 'TGL_MULAI_ASURANSI',
h: 'TGL_MULAI_ASURANSI',
w: 'TGL_MULAI_ASURANSI' },
A31:
{ t: 's',
v: 'TGL_AKHIR_ASURANSI',
h: 'TGL_AKHIR_ASURANSI',
w: 'TGL_AKHIR_ASURANSI' },
A32:
{ t: 's',
v: 'TotalPremi_Peserta',
h: 'TotalPremi_Peserta',
w: 'TotalPremi_Peserta' },
A33:
{ t: 's',
v: 'TotalPremi_Pasangan',
h: 'TotalPremi_Pasangan',
w: 'TotalPremi_Pasangan' },
A34:
{ t: 's',
v: 'PREMI_BEBAN_BRI',
h: 'PREMI_BEBAN_BRI',
w: 'PREMI_BEBAN_BRI' },
A35:
{ t: 's',
v: 'PREMI_BEBAN_DEBITUR',
h: 'PREMI_BEBAN_DEBITUR',
w: 'PREMI_BEBAN_DEBITUR' },
A36:
{ t: 's',
v: 'PREMI_BEBAN_Pasangan',
h: 'PREMI_BEBAN_Pasangan',
w: 'PREMI_BEBAN_Pasangan' },
A37:
{ t: 's',
v: 'NOMOR_REKENING_DEBET',
h: 'NOMOR_REKENING_DEBET',
w: 'NOMOR_REKENING_DEBET' },
A38:
{ t: 's',
v: 'PRODUCT_CODE_DEBET',
h: 'PRODUCT_CODE_DEBET',
w: 'PRODUCT_CODE_DEBET' },
A39:
{ t: 's',
v: 'PRODUCT_CODE_DEBET_DESC',
h: 'PRODUCT_CODE_DEBET_DESC',
w: 'PRODUCT_CODE_DEBET_DESC' },
A40:
{ t: 's',
v: 'NAMA_REKENING_DEBET',
h: 'NAMA_REKENING_DEBET',
w: 'NAMA_REKENING_DEBET' },
A41:
{ t: 's',
v: 'Tanggal_debet',
h: 'Tanggal_debet',
w: 'Tanggal_debet' } }

wb3 {}

why are my test.xlsx and test2.xlsx empty instead of filled with data? why is wb2 filled with data and wb3 isn't filled with anything considering I put wb2 as the parameter on writing wb3?



via Fahmi R

No comments:

Post a Comment