poi

SXSSFWorkbook的简单使用

可紊 提交于 2020-07-27 21:55:14
在工作中使用到SXSSFWorkbook来导出Excel,写一篇博客记录一下SXSSFWorkbook的使用方法 1.介绍 SXSSFWorkbook是属于apache基金会的Excel导出工具类,从其 官网 上可以看出SXSSFWorkbook实现了Workbook接口 Streaming version of XSSFWorkbook implementing the "BigGridDemo" strategy. This allows to write very large files without running out of memory as only a configurable portion of the rows are kept in memory at any one time. SXSSFWorkbook是实现“BigGridDemo”策略的XSSFWorkbook的流媒体版本。 SXSSFWorkbook 允许编写非常大的文件而不会耗尽内存, 因为在任何时候,只有可配置的一部分行保存在内存中。 2.使用 首先我们定义一个列的实体类,包含列的名称,样式等 import org.apache.poi.ss.usermodel.CellStyle; /** * @describe 定义excel列 * */ public class

excel如何分别实现按行读和按列读呢

空扰寡人 提交于 2020-07-27 11:04:32
近期有个需求,说是要用到excel导入导出,一般我们的想法都是按照行数,于是实现了,后面发现公司需求的是列读,甚至不规则的单个excel的读。于是就用poi自己写了按照单元格读的实现。 一、按行读 想起了之前用到的poi,经过搜索发现,开源的项目中有比较好的封装poi的框架,一个是阿里出的easyExcel,另一个是easypoi,感觉使用起来都很方便。网上说easyExcel能解决大文件内存溢出问题,于是项目中就使用easyExcel了。 简单普及下easyExcel原理,不做底层码农,了解点上层设计有好处: easyExcel核心原理 写有大量数据的xlsx文件时,POI为我们提供了SXSSFWorkBook类来处理,这个类的处理机制是当内存中的数据条数达到一个极限数量的时候就flush这部分数据,再依次处理余下的数据,这个在大多数场景能够满足需求。 读有大量数据的文件时,使用WorkBook处理就不行了,因为POI对文件是先将文件中的cell读入内存,生成一个树的结构(针对Excel中的每个sheet,使用TreeMap存储sheet中的行)。 如果数据量比较大,则同样会产生java.lang.OutOfMemoryError: Java heap space错误。POI官方推荐使用“XSSF and SAX(event API)”方式来解决。

非常有趣的的免费API接口,基本上很全了

天大地大妈咪最大 提交于 2020-07-27 04:06:05
一、图灵聊天机器人 http://doc.tuling123.com/openapi2/263611 二、百度地图开放平台 http://lbsyun.baidu.com/index.php?title=webapi 三、Eolinker - API Shop 生活常用 常见疾病查询: https://www.apishop.net/#/api/detail/?productID=215 全国天气预报: https://www.apishop.net/#/api/detail/?productID=76 今日热闻查询: https://www.apishop.net/#/api/detail/?productID=92 邮编查询: https://www.apishop.net/#/api/detail/?productID=73 实时空气质量数据查询: https://www.apishop.net/#/api/detail/?productID=83 邮编查询: https://www.apishop.net/#/api/detail/?productID=73 成语大全: https://www.apishop.net/#/api/detail/?productID=93 万年历查询: https://www.apishop.net/#/api/detail/

基于3D-WebGL技术的城市空间信息模型管理系统

你。 提交于 2020-07-26 21:25:10
三维规划辅助审批系统自上线运行以来,辅助规划局建设项目审批1000余项,实现了规划审批从二维到三维的转变,广泛应用于规划编制业务、规划审批业务、证后抽查业务。但是,随着技术的不断发展,目前的三维规划辅助审批系统亟需优化完善,从系统架构、承载数据资源种类和数量、功能优化、效率提升等各方面亟需全面改造,尤其是成都五城区420平方公里实景三维数据的承载和展示效果,对三维平台改造提出了迫切需求。   为了更好的服务于城市规划编制、审批、证后抽查监督等工作,同时为城市管理和服务提供数据和技术支撑,中心拟开展城市空间信息模型管理系统(一期)”项目建设。利用超图三维平台,于2019年完成了城市空间信息模型管理系统的设计与开发工作。系统着眼于“看、查、用、管”四个方面,通过系统做到对成都市中心五城区三维实景数据进行统筹管理,实现城市空间信息模型管理系统与成都市公共平台之间房屋面、POI点、地铁现状及规划线路等各类专题数据信息的共建共享、动态更新,进而满足成都市规划信息技术中心对成都实景三维的日常展示与规划管理需求,为城市科学规划与决策提供支撑,对于提升城市规划管理软实力、增强可持续发展后劲起到了积极的推动作用。 支撑层: 支撑层运行支撑环境包括规划内部保密网运行的云服务器和互联网运行的华三云服务器。    数据层: 数据层包括基础地理信息库、规划专题数据库、业务管理数据库三大类数据库

poi隐藏列

好久不见. 提交于 2020-07-25 07:41:53
在使用poi导出excel的时候可能会遇到需要隐藏某些列的需求,而强大的poi也提供了相应的api方法用于隐藏列。 sheet.setColumnHidden(( short )7, true ); 上面的这段代码表示将第6列隐藏。 在这里,setColumnHidden()方法的第一个参数表示要控制显示隐藏的列(从0开始),注意是short类型;而第二个参数则表示是否要将该列隐藏,布尔类型。 "成年人的世界,就是应该果断又干脆:不耽误任何人,不消耗任何人,不浪费任何人。" 来源: oschina 链接: https://my.oschina.net/u/4348626/blog/4306954

性能碾压 POI !利用模板语法快速生成 Excel 报表

柔情痞子 提交于 2020-07-24 07:23:59
本期讲师:刘鹏 GcExcel项目组,核心开发者 Hello,大家好,本期葡萄城技术公开课,将由我来为大家带来《性能碾压 POI !利用模板语法快速生成 Excel 报表》的技术分享。 本期课程,我们将借助 服务端表格组件GcExcel 的模板语法来完成Excel报表的生成,通过使用简单的语法标记,可以在不借助任何第三方组件的情况下,结合数据源,自动化地生成Excel模板文件。 目前,GcExcel可以生成的文件格式包括 XLSX、PDF、SSJSON 以及 HTML。在公开课上,我将详细介绍GcExcel 的模板功能,并教大家如何使用模板生成Excel报表,欢迎大家预约本期公开课,7月10日 下午14:00,期待您的准时收看。 免费预约地址: https://live.vhall.com/120821085 GcExcel 的模板功能简介 GcExcel 的模板功能是一个高级功能,它提供了一组标记,使用户可以通过简单的语法,快速制作出一个Excel模板文件。然后,结合数据源,自动化地生成文件。 要使用这个功能,请前往GcExcel产品官网下载试用最新版本。 工作机制: 首先,我们需要准备一个模板文件(不限于Excel文件,也可以是GcExcel的模板实例) 有了模板文件,我们就可以结合数据源和GcExcel的模板引擎,实现自动化生成模板文件的功能,从而避免了手动输入大量数据的工作

java后台实现excel文件下载功能

余生长醉 提交于 2020-05-08 05:59:22
   java中对于excel文件的操作,有读取,写入,上传等功能,在对excel文件进行操作时,为了让使用者更加直观的制作excel数据,必然会有下载模板excel文件功能, 这里以学生基本信息模板excel文件为例,实现对指定路径下的excel文件进行下载的后台代码。    对excel文件的操作使用到poi接口,对于不同拓展名的excel文件调用不同的对象,maven导入jar包语句可以参考 poi导入jar包 。   我们在这里操作的对象是.xlsx格式的excel文件。代码如下: /** * 学生excel模板下载,可用于批量新建,修改学生对象, * * @param response * @param request * @return */ @RequestMapping(value = "downLoadStuInfoExcel", produces = "text/html;charset=UTF-8" ) public void downLoadStuInfoExcel(HttpServletResponse response, HttpServletRequest request) { JSONObject rt = new JSONObject(); // json对象,用来记录下载状态值,写入log中,也可以把状态值返回到前台,这一部分可有可无。 rt

Java:Excel文件上传至后台

坚强是说给别人听的谎言 提交于 2020-05-08 05:59:08
之前的项目中有遇到上传Excel文件的需求,简单说就是解析一个固定格式的Excel表格,然后存到数据库对应的表中,表格如下: 项目采用SSM架构,mvc模式,显而易见,这个Excel表需要拆成两个表,分别存入数据库中,这种表会解析,那其他的应该就难不倒我们了。我自己写的java后台的相关解析代码如下。 注意Excel文件中每个单元格的格式要准确,否则可能解析错误,如果有更加简洁的方案,欢迎大家在留言评论区,相互学习,共同进步! 依赖文件主要是ExcelUtil,其他的直接用maven导入就好,ExcelUtil的路径: https://i.cnblogs.com/Files.aspx package com.yuandi.car.platform.controller; import java.io.ByteArrayInputStream; import java.math.BigDecimal; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.text.SimpleDateFormat; import org.apache.commons.lang.time.DateUtils; import org.apache.poi.hssf

Excel导入保存附件和解析数据

十年热恋 提交于 2020-05-08 05:57:56
Excel导入保存附件和解析数据 一,前端上传附件的组件 1、先给一个下载模板的按钮       // 下载Excel模板 downLoadExcel: function () { window.open(GLOBAL_CONFIG.webSiteRoot + "/main/common/files/xxx.xls"); }, 2、Element上传控件               < el-upload ref ="upload" :action ="importFileUrl" :before-upload ="beforeUpload" :multiple ="false" :on-success ="uploadSuccess" :on-error ="uploadFail" :show-file-list ="false" style ="display: inline-block;" > < el-button type ="primary" icon ="el-icon-plus" size ="medium" > 导入Excel </ el-button > </ el-upload > 3、js中上传有关 var vue = new Vue({ el: '#app' , data: { // 导入的后台接口地址 importFileUrl : '

关于Java中excel表格导出的总结(Java程序导出模板和Java根据模板导出表格两种实现方式)

大兔子大兔子 提交于 2020-05-08 03:24:35
导出excel通用模板(程序定义模板导出) 转载原文: https://www.jianshu.com/p/5c7b359a159c 如下代码,本方法主要用于程序定义模板格式,并导出文件。该方法将定义和创建分离,达到了一定解耦合,降低了开发复杂度。但是依然是程序定义模板,对模板的样式需要程序控制,没有达到将数据和样式分离的目的。 改良版,关于添加依赖之类的之前一篇文章里面有。 这篇是把之前的方法抽成通用模板。 一、添加一个实体类 package com .lencity .securitymanagementplatform .data .entity ; import java .util . List ; public class XlsData { public static final int DATA_TYPE_INTEGER = 0 ; public static final int DATA_TYPE_STRING = 1 ; private List < String > titles ; //表头 private List < Integer > types ; //数据类型 private List < List < Object > > values ;存表数据 public List < Integer > getTypes ( ) { return