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

这篇具有很好参考价值的文章主要介绍了看看Angular有啥新玩法!手把手教你在Angular15中集成报表插件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘要:本文由葡萄城技术团队于博客园原创并首发。葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

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中集成报表插件

代码地址

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

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

扩展链接:
SpreadJS在服务器端导入导出Excel
将C1Chart导出到Excel文件
SpreadJS导入导出到Excel:使用Excel Import和Export Service文章来源地址https://www.toymoban.com/news/detail-472823.html

到了这里,关于看看Angular有啥新玩法!手把手教你在Angular15中集成报表插件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【算法】手把手学会二分查找

    目录 简介 基本步骤 第一种二分 第二种二分  例题 搜索插入位置 数的范围 总结  🥥二分查找,又叫折半查找,通过找到数据二段性每次都能将原来的数据筛选掉一半,通过这个算法我们能够将一个一个查找的  O(n)  的时间复杂度优化到  O(logn)  ,极大地提升了查找的效率

    2023年04月08日
    浏览(44)
  • 手把手pip安装教程

    在Python中,pip是最常用的包管理工具之一。它可以用于安装、卸载和管理Python包。在本文中,我们将手把手教你如何安装pip,以便能够更方便地安装和管理Python包。 在安装pip之前,我们需要确认已经正确安装了Python,并确定其版本。在命令行中输入以下命令,确认Python版本:

    2024年02月11日
    浏览(63)
  • 【算法】手把手学会前缀和

    目录 前缀和 前缀和的好处 公式的推导 例题:前缀和 二维前缀和 推导公式  例题: 子矩阵的和 🎵前缀和算法可以理解为是一种 以空间换时间的方式 ,通过建立一个新的数组来 存储从头到当前位置的数据的总和 。 初始化数组  🎵前缀和数组的初始化就是将前  i  个数存

    2024年01月17日
    浏览(45)
  • tps5430手把手教学

    TPS5430手把手教学 目录 一、buck电路原理 二、tps5430芯片介绍 1.1芯片引脚图 1.2芯片引脚说明 三、tps5430参考电路讲解以及PCB布局 1.正压降压(15V转12V) 1.1原理图 1.2器件选择 1.3PCB布局 2.正压降负压 2.1原理图 2.2PCB布局 2.3注意事项 BUCK电路原理: BUCK电路,又称降压式变换电路,

    2023年04月20日
    浏览(56)
  • 【算法】手把手学会BFS

    目录 简介 层序遍历 例题 献给阿尔吉侬的花束 全球变暖 🍦宽度优先搜索算法(又称广度优先搜索)是 最简便的图的搜索算法之一 ,之前我们在实现对树的层序遍历时就使用过它。不仅如此它还在求最短路径,找连通块时具有奇效。 🍦层序遍历基本上借助于队列,将队头

    2023年04月09日
    浏览(101)
  • 手把手实现一个lombok

    什么是JSR ? JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。 有超过300的JSR。一些更为明显的JSRs包括: 的JSR# 规格或技术 1 实时规范为Jav

    2023年04月23日
    浏览(42)
  • WebSocket---搭建与使用(手把手)

    WebSocket是一种在客户端和服务器之间进行实时双向通信的协议。与传统的HTTP请求-响应模式不同,WebSocket允许 服务器主动向客户端发送消息 ,而不需要客户端发起请求。这种实时通信的特性使得WebSocket非常适合于需要实时更新数据的应用,如聊天室、实时游戏、股票市场等。

    2024年02月02日
    浏览(40)
  • 手把手教你SHA-256

    SHA-256是SHA-2协议簇的一部分,也是当前最流行的协议算法之一。在本篇文章中,我们会了解这个密码学算法的每一个步骤,并且通过实例演示。SHA-2因它的安全性(比SHA-1强很多)和速度为人所知。在没有键(keys)生成的情况下,例如挖掘比特币,像SHA-2这样的快速哈希算法很

    2024年02月13日
    浏览(80)
  • 手把手教你暴力破解

    暴力破解是一种攻击手段,使用大量的认证信息在认证接口尝试登录,直到得到正确的结果。 2.1标题基于表单的暴力破解 2.1.1 第一步:打开burpsuite拦截 2.1.2 第二步:将拦截到的包右击发送到intruder模块 (其中简单介绍一下intruder模块) Target主要是设置暴力破解访问的host地址

    2024年02月07日
    浏览(62)
  • ChatGPT推广指南,手把手教学

    网站登录流程我就不给大家赘述了,直接进入主题,全程干货仔细看 1.个人中心。点击右上角——“头像”——点击“个人中心” 2.推广链接。点击左侧菜单栏——“推广链接”,三条默认推广链接就是您的推广链接,将您的专属推广链接分享给需要的人即可。 3.好友列表。

    2023年04月12日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包