angular框架表格自定义导出,ui组件库为【devExpress by devExtreme】导出插件为exceljs、file-saver

这篇具有很好参考价值的文章主要介绍了angular框架表格自定义导出,ui组件库为【devExpress by devExtreme】导出插件为exceljs、file-saver。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  • 使用的ui组件库为devExtreme
  • 注意:如果你没有使用这个组件库,那后续的代码可能对你不适用!!!,因为devExtreme和exceljs是结合着来的

angular 表格,笔记,angular.js,devexpress,excelJs
angular 表格,笔记,angular.js,devexpress,excelJs

其地址如下:
devexpress
https://js.devexpress.com/

  • 导出使用的是ExcelJS

angular 表格,笔记,angular.js,devexpress,excelJs
其地址如下:
exceljs
https://github.com/exceljs/exceljs/blob/master/README_zh.md

正文

安装exceljs

直接npm 或者yarn安装即可

引入到项目中

注意这里引入Workbook会报错,所以换了种引入方法引入exceljs.min.js,见下面代码
本项目版本

  • angular版本为8版本,
  • exceljs版本为^4.3.0,
  • devextreme版本为19.2.5",
  • “devextreme-angular”: “19.2.5”,
  • “file-saver”: “^2.0.5”,
  • “xlsx”: “^0.16.9”,
// import { Workbook } from 'exceljs';
import * as Excel from "exceljs/dist/exceljs.min.js";
import { saveAs } from 'file-saver';
import { exportDataGrid } from 'devextreme/exporter/exceljs/excelExporter';

引入好了之后 表格正常写 html 伪代码如下

<div class="data-grid-wrapper">
    <dx-data-grid #listInstance height="100%" id="gridContainer" [(dataSource)]="tableList" keyExpr="sowPigID"
        [columnAutoWidth]="true" [allowColumnReordering]="true" [showBorders]="true" [showRowLines]='true'
        [remoteOperations]="true" (onExporting)="onExporting($event)">
        <dxo-export [enabled]="true"></dxo-export>
        
        <dxi-column [fixed]="true" caption="xx号" dataField="sowEarNumber"></dxi-column>
        <dxi-column caption="xx状态" dataField="pigState"></dxi-column>
        
        <dxo-search-panel [visible]="false"></dxo-search-panel>
        <dxo-paging [pageIndex]="0" [enabled]="true" [pageSize]="20"></dxo-paging>
        <dxo-pager [allowedPageSizes]="[10, 15, 20, 50, 100]" infoText='当前为第{0}页 共{1}页 {2}条数据' [showInfo]="true"
            [showNavigationButtons]="true" [showPageSizeSelector]="true" [visible]="true">
        </dxo-pager>
    </dx-data-grid>
</div>

在html里有onExporting这个回调函数里写你的逻辑 具体配置项详见文档
伪代码如下,需要结合你自己的业务来文章来源地址https://www.toymoban.com/news/detail-702562.html

  /**
   * ExcelJs导出 配置项详见
   * https://github.com/exceljs/exceljs/blob/master/README_zh.md
   */
  onExporting(e) {
    const workbook = new Excel.Workbook();
    const worksheet = workbook.addWorksheet(this.row.PlanName);

    exportDataGrid({
      component: e.component,
      worksheet,
      topLeftCell: { row: 2, column: 1 },//用作导出起始位置的单元格。表格的位置 在下面第x行,第x列
      customizeCell: ({ gridCell, excelCell }) => {//表格内容,当前excel实例
        if (gridCell.rowType === 'data') {
          if (this.boarIdList.includes(gridCell.column.dataField)) {//动态列的id
            excelCell.value = parseInt(gridCell.value);

            //业务:xx值超过某个特定阈值后,用颜色高亮表示
            if ((parseInt(gridCell.value)) > (this.row.Threshold * 100)) {
              excelCell.font = {
                color: { argb: 'FFC0000' }, //一个包含 ARGB 值的对象
                bgColor: { argb: 'FF0000FF' }
              };
            }
            excelCell.alignment = { horizontal: 'left' };
          }
        }
      },
    }).then((cellRange) => {
      // header
      const headerRow = worksheet.getRow(1);// 获取一个行对象。如果尚不存在,则将返回一个新的空对象
      headerRow.height = 30;
      /**
       * 单元格合并函数(单元格的列号和行号都是从0开始计)
       * 按开始行,开始列,结束行,结束列合并(相当于 K10:M12)
        a 单元格的列号
        b 单元格的行号
        c 从单元格[a,b]起,向“右”合并的列数 注意c不是合并列的数量,而是列的下标数
        d 从单元格[a,b]起,向下合并到d行
       */
      worksheet.mergeCells(0, 0, 0, 10);

      headerRow.getCell(1).value = `温馨提示:日期为${this.row._DataDate},xxxxx伪代码xxxx自己业务`;
      headerRow.getCell(1).font = { name: '宋体', size: 11, 'color': { 'theme': 1 }, };
      headerRow.getCell(1).alignment = { horizontal: 'left', vertical: 'middle', };
    }).then(() => {
      workbook.xlsx.writeBuffer().then((buffer) => {
        saveAs(new Blob([buffer], { type: 'application/octet-stream' }), `${this.row.PlanName}.xlsx`);
      });
    });
    this.isLoadPanelVisible = false
    e.cancel = true;
  }

到了这里,关于angular框架表格自定义导出,ui组件库为【devExpress by devExtreme】导出插件为exceljs、file-saver的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于vue和element-ui的表格组件,主推数据渲染,支持内容和方法灵活绑定,提供动态具名插槽自定义内容

            组件名为commonTable,主要是基于element-ui中的表格组件进行二次封装的组件,集成了常用的表格功能,除默认内容的显示外,还包括以下几点:         1. 状态的筛选和显示;         2. 操作按钮的显示和方法绑定;         3. 自定义具名插槽内容的封装;      

    2024年02月07日
    浏览(43)
  • HarmonyOS学习路之开发篇—Java UI框架(自定义组件与布局 一)

    HarmonyOS提供了一套复杂且强大的Java UI框架,其中Component提供内容显示,是界面中所有组件的基类。ComponentContainer作为容器容纳Component或ComponentContainer对象,并对它们进行布局。 Java UI框架也提供了一部分Component和ComponentContainer的具体子类,即常用的组件(比如:Text、Button、

    2024年02月09日
    浏览(27)
  • 界面控件DevExpress WinForm——属于WinForm组件的MVVM框架

    DevExpress WinForm拥有180+组件和UI库,能为 Windows Forms 平台创建具有影响力的业务解决方案。 DevExpress WinForm 能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任! 注意 :DevExpress WinForm v22.2已经正式发布,新版

    2023年04月09日
    浏览(37)
  • 官宣!DevExpress Blazor UI组件,支持全新的.NET 8渲染模式

    DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 .NET 8为Blazor引入了令人兴奋的重大变化,统一了它的托管模型,并采用了服务器端渲

    2024年02月03日
    浏览(38)
  • 界面控件DevExpress WPF流程图组件,完美复制Visio UI!(一)

    DevExpress WPF Diagram(流程图)控件帮助用户完美复制Microsoft Visio UI,并将信息丰富且组织良好的图表、流程图和组织图轻松合并到您的下一个WPF项目中。 P.S :DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有

    2024年02月04日
    浏览(38)
  • 界面控件DevExpress WPF流程图组件,完美复制Visio UI!(二)

    DevExpress WPF Diagram(流程图)控件帮助用户完美复制Microsoft Visio UI,并将信息丰富且组织良好的图表、流程图和组织图轻松合并到您的下一个WPF项目中。 在上文中(点击这里回顾),我们为大家介绍了DevExpress WPF Diagram(流程图)组件性能优异切信息丰富的流程图功能、轻松地

    2024年02月05日
    浏览(40)
  • 界面开发框架DevExpress XAF v24.1新版预告 - 跨平台应用UI(二)

    DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 本文中的内容概述了XAF跨平台.NET应用UI和DevExpress .NET App、Web A

    2024年04月23日
    浏览(36)
  • 界面开发框架DevExpress XAF v24.1新版预告 - 跨平台应用UI(一)

    DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 本文中的内容概述了XAF跨平台.NET应用UI和DevExpress .NET App、Web A

    2024年04月13日
    浏览(40)
  • angular中如何定义一个全局组件?

    需求,我们需要新建一个navBreadcrumb的全局组件。这是一个面包屑导航,在不同的页面引入时传入一个路由数组即可。 第一步:我们新建这个组件: 这里有几个要注意的点: 1 ---nav-breadcrumb.module----------这个文件时一定要的。angular和vue/react不同,modulecomponent,对于任何页面而

    2024年02月12日
    浏览(28)
  • 跨平台.NET应用UI组件DevExpress XAF v22.2亮点 - 支持.NET 7

    DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。DevExpress XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 在新版中增强了 DevExpress XAF 的Blazor、Web API Service的功能

    2024年02月09日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包