• 首页
  • 行业
  • 财经
  • 综合
  • 热点
  • 科技
  • 商业
  • 要闻
  • 观点
  • 经济
  • 社会
  • 法治
  • 文旅
  • 体育
  • 健康
  • 生活
  • 国际
  • 国内
  • 教育
logo
  • 综合 >
  • 正文

世界微动态丨高效处理报表,掌握原生JS打印和导出报表为PDF的顺畅技巧!

2023-06-20 09:30:35 来源:博客园

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

前言篇

在日常工作中,报表打印和导出为PDF是经常要处理的任务之一。除了方便我们将信息传达给同事和客户外,还可以让工作看起来更加专业、漂亮和规范,从而赢得领导和客户的信任和支持。作为一名工作者,掌握高效的报表处理技巧对提高工作效率至关重要。其中,原生JS打印和导出报表为PDF技巧是一种非常实用、高效且普遍使用的方式。使用原生JS技巧,可以轻松完成报表处理的任务,避免使用繁琐的第三方库和软件,从而节省时间和金钱。掌握原生JS打印和导出报表为PDF技巧并不需要很高的前端开发技能,只需一些JS基础和DOM操作基础。本文将向您介绍如何使用原生JS技巧打印和导出报表为PDF,并帮助解决在处理报表时可能遇到的问题和困难。


(资料图)

本文使用软件Visual Studio Code(以下简称“VSCode”)作为编程环境,请您以管理员身份运行它。

本文目录:

1.Demo介绍篇

2.代码篇:

2.1创建工程文件

2.2编写JS文件

2.3编写CSS文件

2.4编写Html文件

2.5运行代码

3.更多资源篇

3.1完整代码资源

3.2更多表格插件Demo

1.Demo介绍篇

下图是一个简单的数据报表,并使用饼状图展示,右边两个按钮分别是打印报表(Print)和导出报表为Pdf(Export PDF)。分别点击这两个按钮实现报表打印和导出为Pdf。

(Demo运行界面)

(打印报表)

(打印报表为PDF文件)

2.代码篇2.1创建工程文件

第一步在文件管理器中创建一个空白的文件夹作为工程并用VSCode打开。

第二步新建三个空白的文件(html文件、CSS文件和JS文件),名称可以任意取。

至此已经完成了创建工程文件,下面介绍JS的编写。

2.2编写JS文件

第一步添加表格中的数据信息。

function addTableContent (sheet) {sheet.addSpan(1, 0, 1, 7);//设置列高sheet.setRowHeight(1, 40);sheet.getCell(1, 0).value("Costs").font("28px Times").foreColor("#11114f").hAlign(spreadNS.HorizontalAlign.headerLeft).vAlign(spreadNS.VerticalAlign.center);、//合并单元格sheet.addSpan(2, 0, 1, 7);sheet.setRowHeight(2, 30);//获取指定表单区域中的指定单元格sheet.getCell(2, 0).value("Family Business").font("18px Times").foreColor("#11114f").backColor("#f5f5f5").hAlign(spreadNS.HorizontalAlign.headerLeft).vAlign(spreadNS.VerticalAlign.center);sheet.setColumnWidth(0, 105);sheet.setRowHeight(3, 35);sheet.getCell(3, 0).value("Costs Elements").font("Bold 15px Times").foreColor("#171717").backColor("#ffffff").hAlign(spreadNS.HorizontalAlign.headerLeft).vAlign(spreadNS.VerticalAlign.center);sheet.setColumnWidth(1, 70);sheet.getCell(3, 1).value("2018").font("Bold 15px Times").foreColor("#171717").backColor("#dfe9fb").hAlign(spreadNS.HorizontalAlign.center).vAlign(spreadNS.VerticalAlign.center);sheet.setColumnWidth(2, 70);}

第二步添加饼状图。

//添加饼状图的方法

function addPieContent(sheet) {//合并单元格sheet.addSpan(12, 0, 1, 4);//获取指定表单区域中的指定单元格sheet.getCell(12, 0).value("Total Costs").font("15px Times").foreColor("#11114f").hAlign(spreadNS.HorizontalAlign.center).vAlign(spreadNS.VerticalAlign.center);sheet.addSpan(13, 0, 9, 4);//在单元格中指定公式sheet.setFormula(13, 0, "=PIESPARKLINE(G5:G11,"#dfe9fb","#d1dffa","#9bbaf3","#5c7ee6","#1346a4","#102565", "#ededed")");}

第三步添加导出Pdf的方法。

window.onload = function () {var spread = new spreadNS.Workbook(document.getElementById("ss"));document.getElementById("savePDF").onclick = function () {//下载pdf的方法spread.savePDF(function (blob) {//设置下载pdf的文件名saveAs(blob, "download.pdf");},console.log,{title: "Test Title",author: "Test Author",subject: "Test Subject",keywords: "Test Keywords",creator: "test Creator"});};var sheet = spread.getActiveSheet();sheet.suspendPaint();var style = new GC.Spread.Sheets.Style();//设置字体大小style.font = "15px Times";sheet.setDefaultStyle(style);//添加表格内容addTableContent(sheet);//添加饼图addPieContent(sheet);var printInfo = sheet.printInfo();//showBorder是否打印控件的外边框线printInfo.showBorder(true);//showGridLine是否打印网格线printInfo.showGridLine(true);//headerCenter是否打印表头中心printInfo.headerCenter("Family Business Costs");printInfo.headerLeft("&G");printInfo.footerCenter("&P&N");}

第四步添加打印报表的方法。

window.onload = function () {//打印的方法document.getElementById("btnPrint").onclick = function () {// used to adjust print range, should set with printInfo (refer custom print for detail)spread.sheets[0].setText(31, 8, " ");spread.print();};sheet.resumePaint();};

至此已经完成了JS文件的引入,下面介绍CSS的编写。

2.3编写CSS文件

第一步添加按钮的CSS格式。

input {padding: 8px 14px;display: block;}

第二步添加选项容器和表格的CSS格式。

.sample-spreadsheets {width: calc(100% - 280px);height: 100%;overflow: hidden;float: left;}.options-container {float: right;width: 280px;padding: 12px;height: 100%;box-sizing: border-box;background: #fbfbfb;overflow: auto;}

第三步添加选项行、示例教程和主体的CSS样式。

input {padding: 8px 14px;display: block;}body {position: absolute;top: 0;bottom: 0;left: 0;right: 0;}.sample-tutorial {position: relative;height: 100%;overflow: hidden;}

至此已经完成了CSS文件的引入,下面介绍Html文件的编写。

2.4编写Html文件

第一步引入表格、导出Pdf和打印报表的资源。

<script src="https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/zh/purejs/node_modules/@grapecity/spread-sheets/dist/gc.spread.sheets.all.min.js" type="text/javascript"></script><script src="https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/spread/source/js/FileSaver.js" type="text/javascript"></script><script src="https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/zh/purejs/node_modules/@grapecity/spread-sheets-print/dist/gc.spread.sheets.print.min.js" type="text/javascript"></script><script src="https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/zh/purejs/node_modules/@grapecity/spread-sheets-pdf/dist/gc.spread.sheets.pdf.min.js" type="text/javascript"></script><script src="https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/zh/purejs/node_modules/@grapecity/spread-sheets-resources-zh/dist/gc.spread.sheets.resources.zh.min.js" type="text/javascript"></script>

第二步引入导出Pdf和打印报表的按钮

Click this button to export the Spread component to a PDF file.


2.5运行代码

在运行前需要下载并安装一个插件:Live Server。

(Live Server插件)

安装完插件后需要重启VSCode软件,然后在Html文件中右键点击Open With The Live Server(以浏览器打开)便可运行。

3.更多资源篇3.1完整代码资源

https://gitee.com/GrapeCity/spread-js-print-pdf (Gitee)

https://github.com/GrapeCityXA/SpreadJS-printPdf (GitHub)

3.2更多表格插件Demo

除了JavaScript的使用,还可以在流行的框架如Vue、React中引入打印和导出Pdf功能,不仅如此,还可实现许多花样操作,如数据绑定和单元格透视等,让表格更具交互性和易用性。

责任编辑:{ij7}

    为您推荐

  • 世界微动态丨高效处理报表,掌握原生JS打印和导出报表为PDF的顺畅技巧!

    >摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:[葡
  • iPad平板电脑wlan和cellular区别(ipad平板wlan与cellular的区别)

    cellular和wifi版的主要区别在于价格、网络和热点三个方面,其他功能没
  • 机构策略:股指预计维持震荡格局 关注半导体、计算机设备等板块

    中信证券指出,从政策端看,年初以来,国家相关部门陆续发布重磅政策文
  • 每日动态!嫌榴莲太臭?可它这3个好处“香”到不行

    每年到了吃榴莲的季节,都会出现关于榴莲可以治痛经的说法。那么榴莲可
  • 罕见病女孩学会哭笑 父母坚持陪她康复治疗 今日关注

    安徽阜阳的女孩妮妮,一出生就长得十分漂亮,但从6个月大开始,她一直
  • 天天报道:一艘探险潜水器在加拿大东部海域失踪

    据加拿大媒体19日报道,一艘对泰坦尼克号残骸进行探险旅游的小型潜水器
  • 世界球精选!2023秋冬流感高发季 需防范多病原叠加流行风险

    我国今年秋冬是否出现新冠和流感共同流行?在由中国疫苗行业协会主办的
  • 夏日,不得不去的深夜食堂|快讯

    天津北方网讯:夏天的晚上,必须要和朋友们一起享受美食的快乐。深夜食
  • 环球最新:新疆:2023年军队院校招收普通高中毕业生工作流程

    根据教育部、军委政治工作部、训练管理部《关于做好2023年军队院校招收
  • 赢双科技冲刺科创板IPO,营收复合增长率达176.6%

    乐居财经吴文婷6月20日消息,上海赢双电机科技股份有限公司(以下简称
  • 财通证券给予苏文电能增持评级,传统业务省外放量在即,光储构建第二增长曲线

    财通证券06月20日发布研报称,给予苏文电能(300982 SZ,最新价:63 04
  • 全球热消息:浙江某区:用户侧储能项目放电量补贴0.8元/kWh!建设补贴0.1元/W!

    6月19日,浙江省温州市瓯海区发布储能补贴政策,最高补贴力度达到放电
  • 别不信,节前的机会都在这里!(附策略) 全球快播

    大家好,我是盘之感?!昨天?硬件端核心大票浪潮?信息?涨到瞠目结舌。而
  • 上海市教育考试院辟谣网传中考泄题说法|天天播资讯

    近日,圈群流传一段聊天记录,称上海中考浦东新区数学考试出现泄题情况
  • 高级珠宝更依赖内地有钱人了

    这是6月的一个寻常周末,香港特区尖沙咀广东道上的迪奥Dior、香奈儿Cha
  • 天天看点:假面骑士Geats:景和与道长之间出现矛盾,或成两人获取力量的契机

    在假面骑士Geats最新的剧情中,除了精彩的打斗外,就数道长和景和之间
  • 多地强化政策引导、创新支撑和要素保障——推动制造业高质量发展

    制造业是我国实体经济的基础,也是科技创新的主战场,要大力推动制造业
  • 暴雨!大暴雨!“暴力”梅!都来了……

    强降雨持续盘踞江南华南等地两轮明显降雨来袭从过程累计雨量来看,19—
  • 富国利享回报12个月持有期混合C基金经理发生变更

    富国基金管理有限公司6月20日发布公告,富国利享回报12个月持有期混合C
  • 中信建投基金调研新五丰、伟星新材-全球快报

    根据市场公开信息及6月19日披露的机构调研信息,中信建投(601066)基金
  • 青年路街道青林社区开展消防安全疏散应急演练

    日前,绿园区青年路街道青林社区深入辖区博大喜宝妇产医院,开展消防安
  • 因地制宜、量身定制……来看各地的高科技“三夏” 全球简讯

    这几天,天津的冬小麦陆续进入收割期。其中,位于天津南部的静海区,冬
  • 时报观察丨港股双柜台模式亮相 人民币资产更香了-焦点热讯

    6月19日,香港交易所正式推出“港币-人民币双柜台模式”,即投资者可选
  • 【津云调查】为了让天津不被水患所扰,海河曾在22年间动了六次“手术”……

    天津航拍图  天津北方网讯:海河作为天津的母亲河,经历过黄河泛滥、
  • 光大证券:充电桩的核心环节在于充电模块 行业格局有望重塑

    光大证券表示,充电桩设备端的核心是充电模块,占总成本约50%,大功率
  • 环球微资讯!山东港口青岛港与海信集团、海丰国际签署三方战略合作协议

    6月19日,山东港口青岛港与海信集团、海丰国际共同签署三方战略合作协
  • 华泰证券:消费弱复苏背景下布局三条主线

    华泰证券指出,在消费弱复苏背景下,我们建议布局三条主线,定位平价消
  • 全球快资讯丨北向资金动向盘点|24股减持金额超亿元

    周一(6月19日),北向资金净卖出14 47亿元,全天成交1146 44亿元。其
  • 采用全新造型设计 全新DS 4或将于7月13日上市 每日资讯

    日前,有消息称,全新DS4或将于7月13日上市,新车基于与408X相同的EMP2
  • 全球讯息:沪深股通|海螺水泥6月19日获外资卖出0.07%股份

    同花顺(300033)数据显示,2023年6月19日,海螺水泥(600585)(600585

相关推荐

  • 世界微动态丨高效处理报表,掌握原
  • iPad平板电脑wlan和cellular区别(i
  • 机构策略:股指预计维持震荡格局
  • 每日动态!嫌榴莲太臭?可它这3个好
  • 罕见病女孩学会哭笑 父母坚持陪她
  • 天天报道:一艘探险潜水器在加拿大东
  • 世界球精选!2023秋冬流感高发季
  • 夏日,不得不去的深夜食堂|快讯
  • 环球最新:新疆:2023年军队院校招
  • 赢双科技冲刺科创板IPO,营收复合增

阅读排行

  • 身高155的女生别瞎穿,跟着这位小个子博主这样穿,显高又时髦!
  • 浙江亚太机电股份有限公司 关于使用部分闲置募集资金进行现金管理到期赎回的公告
  • 微资讯!月琴伴奏技巧与伴奏规律_半月琴伴奏
  • 台式电脑怎么设置快捷键_电脑怎么设置快捷键 世界时快讯
  • 全球今热点:记者蹲点|颗粒如何尽归仓
  • 时创能源新股缴款提示
  • 今日1只新股申购:创业板豪恩汽电
  • 【时快讯】股市早8点丨这才是近期最重大利好
  • 国家征地补偿标准多少钱一亩
  • 丁字账怎么做财务报表_丁字账怎么做

291 32 36@qq.com

Copyright © 1998-2015 by 中国北京网版权 所有 京ICP备12018864号-3

营业执照公示信息