首页 > 其他分享 >看看Angular有啥新玩法!手把手教你在Angular15中集成Excel报表插件

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

时间:2023-06-11 10:04:07浏览次数:65  
标签:Angular15 插件 Excel 15.2 angular spread Angular


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指令启动项目并在浏览器中测试上传文件、修改文件内容和下载文件的操作了。

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

代码地址

https://gitee.com/GrapeCity/angularGitee

https://github.com/GrapeCityXA/Angular-SpreadJS (Github)
更多关于前端表格插件的资料


标签:Angular15,插件,Excel,15.2,angular,spread,Angular
From: https://blog.51cto.com/powertoolsteam/6457022

相关文章

  • Python操作Excel文件中多WorkSheet模拟数据库内连接查询
    严格意义上来讲,是可以把Excel文件看作数据库的,C#通过OLEDB.net就可以使用SQL语句操作Excel文件中的数据。本文代码使用Python扩展库openpyxl操作Excel文件中多个WorkSheet中的数据,模拟了数据库的内连接。假设Excel文件名为data.xlsx,其中第一个WorkSheet数据如下:第二个WorkSheet数据......
  • 使用Python获取Excel文件中单元格公式的计算结果
    假设有如下Excel文件,其中第二个WorkSheet中数据如下:其中D列为公式,现在要求输出该列公式计算的数值结果,代码如下:代码运行结果:......
  • 前端vue基于原生check增强单选多选插件
    前端vue基于原生check增强单选多选插件, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12979效果图如下:     ####使用方法```使用方法<!--多选组件 checkData:多选数据 @change:多选事件 --><ccCheckView:checkDa......
  • Python实现Excel与Word文件中表格数据的导入导出
    问题描述:Excel文件“测试文件.xlsx”中有3个worksheet,每个worksheet中的行数和列数都不相同,要求把这3个worksheet中的数据导入到一个Word文件中,每个worksheet生成一个单独的表格,每个表格的样式不同。在Excel和Word之间,是支持表格直接复制的,如果数量少,可以直接复制,如果多的话,可以参......
  • Python+pandas处理Excel文件案例一则
    问题描述:使用pandas读取Excel文件中的数据,输出关系最好的两个演员名称,也就是共同参演电影数量最多的两个演员的名称。数据格式请参考Python统计共同参演电影最多的演员组合,Python+pandas读取Excel文件并统计演员参演电影数量技术要点:pandas二维表格DataFrame的用法。参考代码:输出结......
  • Python批量导入Excel文件中的不重复数据到SQLite数据库
    自从2015年开始,为了上课方便,我编写了一个课堂管理系统并陆续增加了很多功能,已连续使用7个学期,在使用过程中也经常修补和完善其中一些细节。这个软件也是《Python可以这样学》最后一章的完整案例,涉及tkinter、数据库、多线程、Word文件操作、Excel文件操作、进程管理、二进制序列化......
  • Python+pandas分离Excel数据到同一个Excel文件中多个Worksheets
    封面图片:《Python程序设计(第2版)》,董付国,清华大学出版社===============问题描述:已知文件“超市营业额2.xlsx”中结构与部分数据如图所示:现在要求把每个员工的交易数据写入文件“各员工数据.xlsx”,每个员工的数据占一个worksheet,结构和“超市营业额2.xlsx”一样,并以员工姓名作为work......
  • Python+Pandas读取Excel文件分析关系最好的两个演员
    问题描述:已知Excel文件“电影导演演员.xlsx”中内容如下所示,后台发送消息“20220119”下载文件:编写程序,读取Excel文件中的数据,分析共同参演电影数量最多的两个演员,也就是关系最好的两个演员,要求尽可能多地使用Pandas来完成任务。参考代码:运行结果:['演员3''演员4']公众号“Python小......
  • Python+pywin32操作Excel文件常用功能(268行代码+注释)
    问题描述:使用Python扩展库pywin32操作Excel文件。准备工作:安装Python,安装扩展库pywin32,安装Office或WPS。参考代码:运行结果:公众号“Python小屋”......
  • EXCEL如何实现输入指定ID查询对应的信息
    要求:在第2行输入ID按enter键后查询出第4行的信息。步骤:(1)首先将第2行单元格的属性【保护】中取消【锁定】,因为在要在此行输入需要查询的ID,在锁定工作表的情况下,要保障此行是可写的。(备注:第2行需调整为文本格式) (2)本次的实验数据只有三个条目(ID:0201,0202,0203)将这三行数据放在工......