看看Angular有啥新玩法!手把手教你在Angular15中集成报表插件

news/2024/10/25 11:30:48/

Angular15新特性

Angular框架(以下简称“Angular”)作为一款由谷歌开发的Web应用程序框架,其强大的依赖注入系统、可重复使用的模块化开发理念和响应式编程模式等特点让Angular一问世便取得了巨大的关注和流量。 截止目前为止,Angular已经迭代了15个版本,而Angular15又有哪些新的亮眼表现呢?小编为大家简单介绍几个Angular15的新特性(以下特性源于Angular官网):

  1. 独立API脱离开发者预览版

在Angular14版本的更新中使用了独立的API,使得开发者能够在不使用 NgModules 的情况下构建应用程序。在Angular15中将这些API已经更新成为了稳定版,并且以后将通过语义版本去控制独立 APIs 的发展。

  1. 基于MDC的组件发布到稳定版

Angular15优化了基于Material Design Components for Web(MDC)中Angular material对于组件的重构,这样使得 Angular更加接近Material Design的规范。对于大部分组件,Angular更新了样式和DOM结构。对于新组件,Angular保留了一部分TypeScript API和组件/指令选择器。

  1. 语言服务中的自动导入

    在Angular15中,可以自动导入在模板中使用但是没有添加到NgModule中的组

件或独立组件。

既然Angular都升级了,咱们是不是可以尝试一些新的玩法?想要在Angular15中整合一个报表,但不知道该怎么做?

没关系,今天小编来告诉你。

Angular15中引入报表插件

大家都知道Excel作为一款统计、分析数据信息的办公软件,在大家日常工作和生活中起到了非常重要的作用。传统的报表需要从浏览器下载之后再用Excel打开才能修改数据,那么,有没有一种插件可以实现直接在浏览器中修改Excel报表数据呢?答案是肯定的。

下面将介绍如何在Angular15中集成Excel报表插件并实现简单的文件上传和下载。

在本教程中,我们将使用node.js,请确保已安装最新版本。除此之外还需要使用软件Visual Studio Code(以下简称“VSCode”)作为编程环境,请您以管理员身份运行它。

  1. Angular集成报表插件:

新建一个文件夹用来存放工作区代码(文件夹路径最好是英文)。

使用指令初始化Angular工程(用命令提示符CMD输入指令)。

//安装 Angular CLI globally

npm install -g @angular/cli

//通过Angular CLI 创建一个新项目

ng new spread-sheets-app

(初始化一个Angular工程)

将下面的表格资源粘贴到package.json文件中的dependencies标签,并使用npm install指令下载和ng serve指令运行。

"@angular/animations": "\^15.2.9","@angular/common": "\^15.2.9","@angular/compiler": "\^15.2.9","@angular/core": "\^15.2.9","@angular/forms": "\^15.2.9","@angular/platform-browser": "\^15.2.9","@angular/platform-browser-dynamic": "\^15.2.9","@grapecity/spread-sheets-resources-zh": "15.1.0","@angular/router": "\^15.2.9","@grapecity/spread-excelio": "\^15.2.5","@grapecity/spread-sheets": "\^15.2.5","@grapecity/spread-sheets-angular": "\^15.2.5","@grapecity/spread-sheets-charts": "\^15.1.1","@grapecity/spread-sheets-designer": "15.1.2","@grapecity/spread-sheets-designer-resources-cn": "15.1.2","@grapecity/spread-sheets-designer-angular": "15.1.2","file-saver": "\^2.0.5","rxjs": "\~7.5.0","tslib": "\^2.3.0","zone.js": "\~0.11.4"

(Angular工程中引入表格插件资源)

实例化表格组件并初始化表格对象内容。

在src/app/app.component.html中初始化实例表格:

\<div class='maincontainer'\>\<gc-spread-sheets [backColor]="spreadBackColor" [hostStyle]="hostStyle" (workbookInitialized)="workbookInit(\$event)"\>\</gc-spread-sheets\>\</div\>

(初始化实例表格)

在src/app/app.component.ts中设置表格的大小和内容:

//设置内容长度宽度格式

export class AppComponent {spreadBackColor = 'aliceblue';hostStyle = {width: '95vw',height: '80vh'};private spread;private excelIO;//创建Excel.IO对象constructor() {this.spread = new GC.Spread.Sheets.Workbook();this.excelIO = new Excel.IO();}//初始化对象workbookInit(args: any) {//表格对象内容//举例:设置第一个表格的内容为“Test Excel”且背景颜色为蓝色。//const self = this;// self.spread = args.spread;// const sheet = self.spread.getActiveSheet();// sheet.getCell(0, 0).text('Test Excel').foreColor('blue');}(设

置表格大小和内容)

2.设置上传和下载按钮。

在src/app/app.component.html中初始化上传、下载按钮:

\<div class='maincontainer'\>\<!--初始化上传按钮--\>\<div class='loadExcelInput'\>\<p\>Open Excel File\</p\>\<input type="file" name="files[]" multiple id="jsonFile" accept=".xlsx" (change)="onFileChange(\$event)" /\>\</div\>\<!--初始化下载按钮--\>\<div class='exportExcel'\>\<p\>Save Excel File\</p\>\<button (click)="onClickMe(\$event)"\>Save Excel!\</button\>\</div\>\</div\>(初始化上传、下载按钮)在src/app/app.component.ts中添加上传、下载按钮的方法://上传文件代码onFileChange(args: any) {const self = this, file = args.srcElement && args.srcElement.files && args.srcElement.files[0];if (self.spread && file) {self.excelIO.open(file, (json: any) =\> {self.spread.fromJSON(json, {});setTimeout(() =\> {alert('load successfully');}, 0);}, (error: any) =\> {alert('load fail');});}}//下载文件代码onClickMe(args: any) {const self = this;const filename = 'exportExcel.xlsx';const json = JSON.stringify(self.spread.toJSON());self.excelIO.save(json, function (blob: any) {saveAs(blob, filename);}, function (error: any) {console.log(error);});}

(添加上传、下载按钮的方法)

现在可以使用ng serve指令启动项目并在浏览器中测试上传文件、修改文件内容和下载文件的操作了。

在这里插入图片描述

(系统效果展示图)

代码地址

https://gitee.com/GrapeCity/angular (Gitee)

https://github.com/GrapeCityXA/Angular-SpreadJS (Github)

扩展链接:

前端框架之争丨除了Vue、Angular和React还有谁与之争锋

Angular性能优化实践——巧用第三方组件和懒加载技术

如何在Angular CLI上使用SpreadJS


http://www.ppmy.cn/news/237084.html

相关文章

数据库管理-第八十一期 保姆级EMCC搭建教程(20230606)

数据库管理 2023-06-06 第八十一期 保姆级EMCC搭建教程1环境说明2 EMCC安装前准备3安装EMCC4 进入EMCC5 添加主机与数据库5.1 添加主机5.2 添加数据库 6 注意事项总结 第八十一期 保姆级EMCC搭建教程 EMCC&#xff0c;全称Oracle Enterprise Manager Cloud Control&#xff0c…

2023智源大会议程公开丨视觉与多模态大模型论坛

6月9日&#xff0c;2023北京智源大会&#xff0c;将邀请AI领域的探索者、实践者、以及关心智能科学的每个人&#xff0c;共同拉开未来舞台的帷幕&#xff0c;你准备好了吗&#xff1f;与会知名嘉宾包括&#xff0c;图灵奖得主Yann LeCun、OpenAI创始人Sam Altman、图灵奖得主Ge…

计算机按键闹钟怎么关闭,电子手表怎么关闭闹钟

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。 电子手表关闭闹钟的方法是&#xff1a; 1、电子表侧面有四个按钮&#xff0c;同时按看“日期”和“闹钟”的两个按钮就可以打开或关闭闹钟&#xff1b; 2、按两次Mode调闹钟&#x…

智能手表音频特性测试_儿童手表电磁辐射测试这一环节不可少

随着智能设备的推广&#xff0c;高效、安全、防丢失的儿童手表越来越多地出现在孩子们的手腕上&#xff0c;家长联系和监护孩子也便捷了不少。然而&#xff0c;由于儿童正处于生长发育时期&#xff0c;身体各器官的功能都未发育完善儿童手表手机在使用时又贴近脸或身体&#xf…

儿童智能体温计开发文档_实力不容小觑!小米发布高端旗舰儿童学习手表及米家电子体温计...

最近&#xff0c;小米发布了两款产品&#xff1a;高端旗舰儿童学习手表和米家电子体温计&#xff0c;这两款产品自发售以来&#xff0c;受到了广大消费者的一致好评&#xff0c;同时&#xff0c;也有很多人想把这两款产品当做新年礼物送给亲朋好友。 米兔儿童学习手表4Pro具备双…

这家小米生态链公司用AI+学习,重塑儿童手表市场

在核心科技产业如互联网、智能手机进入存量时代后&#xff0c;越来越多的科技产品开始瞄准细分群体&#xff0c;如儿童。数据显示&#xff0c;儿童智能硬件市场未来五年内会有 75%的年均增速&#xff0c;这体现出科技正在变得越来越普惠&#xff0c;让所有人受益。 不过&#x…

儿童车内滞留监测控制系统的设计

word完整版可点击如下下载>>>>>>>> 儿童车内滞留监测控制系统的设计-硬件开发文档类资源-CSDN下载内容包括详细设计文档word版&#xff0c;附带开题报告和相关PPT等文档&#xff0c;供大家参考学习。也可在本博客主页找到更多下载资源、学习资料请…

儿童智能手表行业未老先衰:5亿家长被伪智能忽悠

近年来&#xff0c;“能打电话的儿童智能手表”备受家长的追棒&#xff0c;各品牌如雨后春笋遍地开花&#xff0c;且销量逐年暴涨。有专业机构预测&#xff0c;到2020年儿童智能手表市场将达5000万块左右。按这速度&#xff0c;让智能手表戴到每一个儿童手上&#xff0c;只是时…