9.1 Library exceljs - quan1997ap/angular-app-note GitHub Wiki
import { Component, OnInit } from '@angular/core';
import * as Excel from 'exceljs/dist/exceljs.min.js';
import { HttpClient } from '@angular/common/http';
import { saveAs } from 'file-saver';
import * as fs from 'file-saver';
@Component({
selector: 'app-exceljs',
templateUrl: './exceljs.component.html',
styleUrls: ['./exceljs.component.scss'],
})
export class ExceljsComponent implements OnInit {
constructor(private http: HttpClient) {}
readExcel1(event) {
const workbook = new Excel.Workbook();
const target: DataTransfer = <DataTransfer>event.target;
if (target.files.length !== 1) {
throw new Error('Cannot use multiple files');
}
/**
* Final Solution For Importing the Excel FILE
*/
const arryBuffer = new Response(target.files[0]).arrayBuffer();
arryBuffer.then(function (data) {
workbook.xlsx.load(data).then(function () {
// play with workbook and worksheet now
console.log(workbook);
const worksheet = workbook.getWorksheet(1);
console.log(worksheet.getCell('A1').value);
console.log('rowCount: ', worksheet.rowCount);
worksheet.eachRow(function (row, rowNumber) {
console.log('Row: ' + rowNumber + ' Value: ' + row.values);
});
});
});
}
readExcel($event) {
var workbook = new Excel.Workbook();
workbook.xlsx.readFile('../demo1.xlsx').then(function () {
var worksheet = workbook.getWorksheet(1);
console.log(worksheet.getCell('A1').value);
});
}
ngOnInit(): void {
// "arraybuffer" | "blob" | "text" | "json"
const wb = new Excel.Workbook();
const reader = new FileReader();
this.http.get('assets/demo.xlsx', { responseType: 'blob' }).subscribe(
(data) => {
console.log(data);
// saveAs(data,"nameFile"+".xlsx");
wb.xlsx.load(data).then((workbook) => {
console.log(workbook, 'workbook instance');
workbook.eachSheet((worksheet, id) => {
worksheet.eachRow((row, rowIndex) => {
console.log(row.values, rowIndex);
});
// Add an array of rows
const rows = [
[5, 'Bob', new Date().getTime()], // row by array
[5, 'Bob', new Date().getTime()],
];
// add new rows and return them as array of row objects
const newRows = worksheet.addRows(rows);
console.log(worksheet);
worksheet.eachRow((row, rowIndex) => {
console.log(row.values, rowIndex);
});
});
workbook.xlsx.writeBuffer().then((dataBuffter) => {
console.log(dataBuffter);
let blob = new Blob([dataBuffter], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
});
fs.saveAs(blob, 'CarData.xlsx');
});
});
// fs.saveAs(data, 'CarData.xlsx');
},
(error) => {
console.log(error);
}
);
}
}