Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何使用FileSaver.js从JSON导出Excel文件,并进行格式化和自动调整_Angular_Typescript_Filesaver.js - Fatal编程技术网

Angular 如何使用FileSaver.js从JSON导出Excel文件,并进行格式化和自动调整

Angular 如何使用FileSaver.js从JSON导出Excel文件,并进行格式化和自动调整,angular,typescript,filesaver.js,Angular,Typescript,Filesaver.js,我已经可以使用以下函数将JSON数据导出到Excel: public exportAsExcelFile(json: any[], excelFileName: string) :Promise<Object> { const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json); const workbook: XLSX.WorkBook = { Sheets: { 'data': workshe

我已经可以使用以下函数将JSON数据导出到Excel:

  public exportAsExcelFile(json: any[], excelFileName: string) :Promise<Object> {

    const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);
    const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
    const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
    return (this.saveAsExcelFile(excelBuffer, excelFileName));

  }

  private saveAsExcelFile(buffer: any, fileName: string):Promise<Object>  {
    const data: Blob = new Blob([buffer], {type: EXCEL_TYPE});
    return await FileSaver.saveAs(data, fileName + '-' + new  Date().toString()+ EXCEL_EXTENSION);
 }
worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
public exportAsExcelFile(json:any[],excelFileName:string):承诺{ 常量工作表:XLSX.worksheet=XLSX.utils.json\u to\u sheet(json); 常量工作簿:XLSX.workbook={工作表:{'data':工作表},工作表名称:['data']}; 常量excelBuffer:any=XLSX.write(工作簿,{bookType:'XLSX',type:'array'}); 返回(this.saveAsExcelFile(excelBuffer,excelFileName)); } 私有saveAsExcelFile(缓冲区:任意,文件名:字符串):承诺{ 常量数据:Blob=新Blob([buffer],{type:EXCEL_type}); return wait FileSaver.saveAs(数据,文件名+'-'+新日期().toString()+EXCEL_扩展名); } 但我不知道如何格式化此文件,因此我至少可以使用粗体标题和带有autofit的单元格。

如果您正在使用,如果不切换到非常昂贵的PRO版本,则无法实现此目的

worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
这是社区版。我们还提供带有 性能增强、造型等附加功能,以及 专门支持

worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
你可以使用图书馆。它提供了无样式化功能

 const workbook = new ExcelJS.Workbook();
 workbook.creator = 'Your company name';
 workbook.created = new Date();

 const worksheet = workbook.addWorksheet('Worksheet 1');
worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
然后可以指定列宽度:

 worksheet.columns = [
     { width: 15 },
     { width: 30 },
     { width: 10 }
 ];
worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
您可以使用以下代码设置粗体标题:

worksheet.getRow(1).font = { bold: true };
worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
指定单元格样式:

worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
最后导出文件

worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
import {saveAs} from 'file-saver';
const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';

...
workbook.xlsx.writeBuffer()
             .then((file: any) => {
                const blob = new Blob([file], { type: EXCEL_TYPE });
                saveAs(blob, `fileName.xlsx`);
             });
按照此操作可找到更多样式选项。

如果您正在使用,则必须切换到非常昂贵的PRO版本才能实现此目的

worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
这是社区版。我们还提供带有 性能增强、造型等附加功能,以及 专门支持

worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
你可以使用图书馆。它提供了无样式化功能

 const workbook = new ExcelJS.Workbook();
 workbook.creator = 'Your company name';
 workbook.created = new Date();

 const worksheet = workbook.addWorksheet('Worksheet 1');
worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
然后可以指定列宽度:

 worksheet.columns = [
     { width: 15 },
     { width: 30 },
     { width: 10 }
 ];
worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
您可以使用以下代码设置粗体标题:

worksheet.getRow(1).font = { bold: true };
worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
指定单元格样式:

worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
最后导出文件

worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;
import {saveAs} from 'file-saver';
const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';

...
workbook.xlsx.writeBuffer()
             .then((file: any) => {
                const blob = new Blob([file], { type: EXCEL_TYPE });
                saveAs(blob, `fileName.xlsx`);
             });
按照此操作查找更多样式选项

worksheet.getCell('A1').border = {
                    top: ...,
                    left: ...,
                    bottom: ...,
                    right: ...
                };
worksheet.getCell('A1').font = ...;