当前位置: 首页 > news >正文

济南网站建设正规公司3网合一网站

济南网站建设正规公司,3网合一网站,建设彩票开奖网站,云主机网站如何备份最新技术资源#xff08;建议收藏#xff09; https://www.grapecity.com.cn/resources/ 前言 | 问题背景 在操作Excel的场景中#xff0c;通常会有一些针对Excel的批量操作#xff0c;批量的意思一般有两种#xff1a; 对批量的Excel文件进行操作。如导入多个Excel文件… 最新技术资源建议收藏 https://www.grapecity.com.cn/resources/ 前言 | 问题背景 在操作Excel的场景中通常会有一些针对Excel的批量操作批量的意思一般有两种 对批量的Excel文件进行操作。如导入多个Excel文件并处理数据或导出多个Excel文件。这类场景往往操作很相似但是要反复读写Excel文件。对单个或复数个进行批量操作。如对Excel文件进行批量替换文本批量添加公式或者批量增加样式。这类场景一般需要操作的Excel文件不多但是需要反复执行特定操作这种时候需要有易用的API来帮忙。 现有的Excel组件中POI是非常常用的组件但是针对上述不同的场景其分别会对组件提出两类要求。 第一类场景会反复读取或者写入文件需要组件对于内存有足够好的优化否则很容易出现内存溢出(out of memory)的问题。 第二类场景则需要组件提供易用的API例如替换字符串如果没有查找(find)或者替换(replace)的接口API。则需要自己遍历单元格(cell)来查找值。 虽然POI在上面两种要求上可能会有欠缺但还有其他的组件可以选择比如EasyExcelGcExcel等。 下面是以GcExcel为例对上述两类场景分别列举的例子。 什么是GcExcel 场景1 批量导入Excel文件并读取特定区域的数据 例如有多个Excel文件名字都是GUID。这些Excel文件来自于填报的数据需要对其中的内容进行汇总。 如Excel的表单内容如下图 需要对B3到C6的格子进行取值可以用下面的代码提取数据。 Testpublic void testImportFormFile() {String folderPath path/testFolder; //使用你的路径File folder new File(folderPath);File[] files folder.listFiles();if (files ! null) {for (File file: files){if(file.isFile() file.getName().endsWith(.xlsx)){Workbook wb new Workbook();wb.open(file.getAbsolutePath());Object[][] value (Object[][]) wb.getActiveSheet().getRange(B3:C6).getValue();System.out.println(value[0][1]); //小葡萄System.out.println(value[1][1]); //20.0System.out.println(value[2][1]); //开发部System.out.println(value[3][1]); //610123456789012345//添加处理数据的逻辑}}}}通过listFiles()方法获取所有的Excel文件。循环读取每一个文件通过GcExcel打开Excel文件。使用IRange上的getValue()方法可以把Excel中的格子以二维数组的方式读取出来。 之后就可以通过访问二维数组来处理业务逻辑。 场景2 批量导出Excel文件导出前把数据写在特定位置 继续以第一个Excel文件为例子当在数据库中已经存有一些数据希望把数据写入并导出到复数个Excel文件里或者导出为PDF文件。 真实的场景有如企业发放工资每个月需要给每一位员工发放一份电子版的工资单因为每个员工的工资单信息不相同这个场景下则需要把数据批量导出为复数个PDF。 Testpublic void testExportFormFile() {String outPutPath E:/testFolder;//给valueList初始化数据替换为从数据库CSV或者JSON等中获取数据。ArrayListObject[][] valueList new ArrayListObject[][]();for (Object[][] value : valueList) {Workbook wb new Workbook();wb.getActiveSheet().getRange(B3:C6).setValue(value);wb.save(outPutPath UUID.randomUUID().toString() .xlsx);}}GcExcel可以直接把二维数组设置给一个range从数据库中把数据加载出来以后可以整理成二维数组。 之后通过GcExcel的SetValue()把二维数组直接设置到sheet上最后通过工作簿(workbook)上的save方法保存导出。 场景3 打开Excel文件批量替换关键字 在这个场景中需要把Excel文件作为模板把其中的一些自定义关键字替换成数据。 比如在有一个制式的报表需要把数据填写进去。例如表头姓名报表相关的条目数据等信息。可能会把报表制作成一个模板之后把表头姓名等位置留空或者用关键字作为占位符。例如“%Name%”可以作为名字的占位符在填写数据的时候可以对%Name%进行替换。 Testpublic void testReplaceTemplateFile() {String templateFilePath test.xlsx;Workbook wb new Workbook();wb.open(templateFilePath);IRange usedRange wb.getActiveSheet().getUsedRange();//load dataArrayListObject[] valueList new ArrayListObject[]();for (Object[] value : valueList) {usedRange.replace(value[0],value[1]);}wb.save(result.xlsx, SaveFileFormat.Xlsx);}通过工作簿(workbook)打开模板(template)文件准备好数据以后直接通过IRange的replace方法替换自定义的关键字。 替换完之后保存为新的Excel即可。 对于更高级复杂的数据填充GcExcel也有模板功能设置好模板后可以直接绑定数据源GcExcel会自动填充数据到模板里。 场景4 打开Excel模板文件批量获取计算结果 例如有一个Excel文件用于计算保险或者行业数据。需要在固定的位置填入值使用Excel中的公式计算结果。 Testpublic void testCalcFormulaByTemplateFile() {String templateFilePath E:/testFolder/testFormula.xlsx;Workbook wb new Workbook();wb.open(templateFilePath);//获取特定的值比如以下ArrayListObject[] valueList new ArrayListObject[]();for (Object[] value : valueList) {Object A1Value value[0];Object A2Value value[1];Object result null;wb.getActiveSheet().getRange(A1).setValue(A1Value);wb.getActiveSheet().getRange(A2).setValue(A2Value);result wb.getActiveSheet().getRange(A3).getValue();System.out.println(result);}} GcExcel的公式计算是在取值的时候计算的因此不需要显示调用calculate之类的方法只需要把输入的参数准备好放在Excel特定的cell中就可以直接获取公式的计算结果了。 以上就是一些常见的批量处理Excel的方法仅使用GcExcel Java的代码为例同样的思路也可以使用其他的组件来实现。 扩展链接 GrapeCity Documents for Excel服务端Excel组件V3.0 正式发布 用它来开发“在线Excel”系统竟如此简单 如何使用JavaScript实现前端导入和导出excel文件
http://www.hkea.cn/news/14545886/

相关文章:

  • 石家庄 科技 公司 网站建设十大网站建设公司
  • 网站需求表seo网站优化培训多少价格
  • 海外人才招聘网站怎样用一台电脑做代理 让别的电脑通过代理上几个网站
  • 广州商城建站系统网站域名在哪里买
  • 民权网站建设企业网站排名提升软件
  • 湖南营销型网站建设 在线磐石网络seoul是哪个国家
  • 具有价值的建网站网站建设印花税税率
  • 定制网站前准备大型电子商务建设公司
  • 有没有做羞羞事的网站湖南昌正建设有限公司网站
  • iis应用程序池与网站哪些人不适合学电子商务专业
  • 怎么做网站关键词网站建设一点通
  • 关于平面设计的网站网站建设scyiyou
  • 品牌网站设计方案坦洲网站建设公司哪家好
  • 网站不显示域名解析错误怎么办城乡建设部网站首页
  • 龙南网站建设h5网站开发公司
  • 网站建设需要掌握哪些知识字体设计艺术字
  • 怎么做各个地图网站的认证网站开发的验收标准
  • 效果图网站猪八戒厦门市住宅建设办公室网站
  • 配资网站开发是什么意思敬请期待前一句
  • 萧县做网站seo自己做网站吗
  • 做淘客网站哪个cms好计算机培训机构收费
  • 制作婚恋网站网站里的搜索怎么做
  • 自建网站注册域名很有必要什么是电商设计师
  • 东方商易网站开发上海做公益活动有哪些好的网站
  • 便宜的网站设计58同城建设网站
  • 沧州网站建设价格品牌商城系统
  • 建筑企业资质查询网站网站建设 问卷调查
  • 小白学网站建设与设计书网站图片缩略图
  • 辽宁省建设厅科技中心网站深圳设计网站公司网站
  • 微信认证 网站简单网站开发准备