Прежде чем я пытаюсь экспортировать Excel, используя xlxs-стили, после установки npm и ng serve я получил сообщение об ошибке:
WARNING in ./node_modules/xlsx-styles/xlsx.js
Module not found: Error: Can't resolve 'crypto' in 'C:\Users\hansen\Documents\asg_tax_webclient\node_modules\xlsx-styles'
ERROR in ./node_modules/xlsx-styles/dist/cpexcel.js
Module not found: Error: Can't resolve './cptable' in 'xxx\node_modules\xlsx-styles\dist'
ERROR in ./node_modules/xlsx-styles/xlsx.js
Module not found: Error: Can't resolve 'fs' in 'xxx\node_modules\xlsx-styles'
ERROR in ./node_modules/xlsx-styles/ods.js
Module not found: Error: Can't resolve 'fs' in 'xxx\node_modules\xlsx-styles'
Поэтому я пытаюсь найти решение, и я нашел, а затем попробовал решениездесь https://github.com/SheetJS/js-xlsx/issues/285,
Основываясь на этом решении, я создаю веб-пакет с учебником из этого источника: http://opensourceforgeeks.blogspot.com/2018/12/how-to-customize-build-configuration.html:
module.exports = {
module: {
rules: [
{
// test: /\.example$/,
// use: ["example-loader"],
// include: path.resolve(__dirname, "./")
},
//test on angular.json
{
"options": {
"scripts": [
"node_modules/chart.js/dist/Chart.min.js"
],
"styles": [
{
"input": "node_modules/@progress/kendo-theme-default/dist/all.css"
},
"node_modules/flag-icon-css/css/flag-icon.css",
"node_modules/font-awesome/css/font-awesome.css",
"node_modules/simple-line-icons/css/simple-line-icons.css",
"src/scss/style.scss",
"node_modules/ngx-toastr/toastr.css"
],
}
},
]
},
node: {
fs: 'empty'
},
externals: [
{
'./cptable': 'var cptable',
}
],
};
После этого все в порядке, когда яng serve.
Но когда я пытаюсь экспортировать данные в excel, я снова получаю сообщение об ошибке в консоли:
ERROR TypeError: xlsx_styles__WEBPACK_IMPORTED_MODULE_2__.utils.json_to_sheet is not a function
at
Вот мой код импорта и метод написания Excel:
import {WorkSheet as XLSXWorkSheet, utils as XLSXUtils, WorkBook as XLSXWorkBook, write as StyleWrite, utils as StyleUtils, CellObject as StyleCellObject} from 'xlsx-styles';
import {ExcelConfig} from "../constants/excel.config";
import {DOCUMENT} from '@angular/common';
import * as FileSaver from 'file-saver';
import * as XLSX from 'xlsx';
public exportAsExcelFileWithStyle(json: any[], excelFileName: string): void {
console.log(json,excelFileName);
this.worksheet = XLSXUtils.json_to_sheet(json, {header: [], skipHeader:true});
const workbook: XLSXWorkBook = { Sheets: { 'data': this.worksheet }, SheetNames: ['data'] };
const excelBuffer: any = StyleWrite(workbook,
{ bookType: 'xlsx', type: 'buffer', cellDates: true, cellStyles: true});
this.openExcelFile(excelBuffer, excelFileName);
//this.saveAsExcelFile(excelBuffer, excelFileName);
}
Я что-то забыл?Буду рад любой помощи.