poi

Java实现导入导出Excel文件的方法

被刻印的时光 ゝ 提交于 2020-03-31 14:53:11
目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java Excel 直接上代码: 一,POI POI是apache的项目,可对微软的Word,Excel,Ppt进行操作,包括office2003和2007,Excl2003和2007。poi现在一直有更新。所以现在主流使用POI。 xls: pom: org.apache.poi poi-ooxml 3.9 commons-io commons-io 2.2 导出: public class PoiCreateExcel { public static void main(String[] args) { // 创建表头 String[] title = {"id","name","sex"}; //创建Excel工作薄 HSSFWorkbook workbook = new HSSFWorkbook(); //创建一个工作表sheet HSSFSheet sheet = workbook.createSheet(); //创建第一行 HSSFRow row = sheet.createRow(0); HSSFCell cell = null; // 插入第一行 for (int i = 0; i < title.length; i++) { cell = row.createCell(i);

一款集代码生成器+权限管理+工作流+报表工具+APP小程序于一体的敏捷开发框架

半世苍凉 提交于 2020-03-23 19:32:17
3 月,跳不动了?>>> XJR敏捷开发框架是一套集代码生成器+通用权限管理+工作流+即时通讯+报表工具+手机APP小程序开发于一体的敏捷开发框架。拖拽拉可视化操作配置,降低开发难度和缩短开发周期,提高80%以上的工作效率,提供源码,可无线扩展,轻松开发CRM、OA、ERP、WMS、小程序、电商管理后台等各种企业管理系统。 以下是这个敏捷开发框架的一些阐述: 技术特点 技术选型: 使用目前流行的多种web技术,包括springboot, JPA,Druid, Activiti,Lombok,swagger,poi,WebSocket,Jquery,BootStrap, maven,Jenkins 等等,支持多种数据库MySQL, Oracle, sqlserver等。 分层设计:使用分层设计,分为dao,service,Controller,view层,层次清楚,低耦合,高内聚。 安全考虑:严格遵循了web安全的规范,前后台双重验证,参数编码传输,密码md5加密存储,shiro权限验证,从根本上避免了SQL注入,XSS攻击,CSRF攻击等常见的web攻击手段。 功能模块: 开发向导、代码生成器,商业智能、工作流、报表管理、移动端开发、作业计划、多语言、数据源管理、企业微信、钉钉、消息管理,菜单管理,用户管理,机构管理,角色管理,区域管理,字典管理,日志查询等基础模块。

卫星影像识别技术在高德数据建设中的探索与实践

社会主义新天地 提交于 2020-03-23 15:56:33
3 月,跳不动了?>>> 导读 对于地图服务而言,地图数据的准确率和覆盖率是服务质量的关键因素,而地图数据的更新,依赖于多种信息源,如轨迹热力,实采图像,卫星影像等。近年来,由于遥感卫星数量的增多及高分辨率光谱相机的出现,以及卫星影像图自身覆盖广、视角好、信息丰富的特点,卫星影像作为地图数据更新的信息源起到了越来越重要的作用。 对于卫星影像的使用方式,高德经历了由前端用户展示,到人工数据作业参考,再到主动发现更新地图数据的进化过程,这同时也是我们不断挖掘影像数据价值的过程。本文会介绍高德视觉团队将卫星影像从被动参考升级为主动发现的过程中的探索和实践。 卫星影像关键元素 按照几何结构划分,影像元素可分为三大类:道路元素(road),地物元素(region),建筑物元素(building): 道路元素 :包含普通道路,精细道路(主/辅路/非机动车道,提前右转路),连接点(贯穿路、出入口、掉头口、路口等)。 地物元素 :包含建筑区域、拆迁区域、水域、农田、山区、林地、大棚等。 建筑物元素 :建筑物楼块。 卫星影像在数据更新上的优势 路网是地图数据的基础,所有的道路属性、动态事件、POI引导都需要基于准确的路网数据信息。而卫星影像由于具有上帝视角,对区域内路网的连接关系、复杂的路口关系、平立交关系的判断具有全局而丰富的信息支撑。同时,由于卫星影像覆盖广、成本低的特点

poi中文api文档

穿精又带淫゛_ 提交于 2020-03-22 08:58:51
POI中文API文档 一、 POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 二、 HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。 三、 POI EXCEL文档结构类 HSSFWorkbook excel文档对象 HSSFSheet excel的sheet HSSFRow excel的行 HSSFCell excel的单元格 HSSFFont excel字体 HSSFName 名称 HSSFDataFormat 日期格式 HSSFHeader sheet头 HSSFFooter sheet尾 HSSFCellStyle cell样式 HSSFDateUtil 日期 HSSFPrintSetup 打印 HSSFErrorConstants 错误信息表 四、 EXCEL常用操作方法 1、 得到Excel常用对象 [c-sharp] view plaincopyprint? POIFSFileSystem fs

JAVA POI的使用

旧城冷巷雨未停 提交于 2020-03-22 08:55:47
最近开发遇到了要通过Java处理Excel文件的场景,于是乎在网上了解了一番,最后自己做了个demo,已上传gitee: https://gitee.com/github-26930945/JavaCommon/tree/master/officeDemo 下面是我参考的内容,来源于: https://blog.csdn.net/qq_21137441/article/details/79226171 下载地址 https://archive.apache.org/dist/poi/release/bin/ 需要的jar包(我用的是3.10final) Poi-3.10-Final.jar (用于xls) Poi-ooxml-3.10-Final.jar (用于xlsx) Poi-ooxml-schemas-3.10.jar Xmlbeans-2.30.jar dom4j-1.6.1.jar poi-scratchpad-3.10-FINAL-20140208.jar(用于word,ppt) 读doc public static String readWord(String name) { FileInputStream in; String text = null; try { in = new FileInputStream(name); WordExtractor

使用poi调整字体格式、添加单元格注释、自动调整列宽

橙三吉。 提交于 2020-03-22 08:55:31
1 创建新的工作铺 import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFDataFormat; import org.apache.poi.hssf.usermodel.HSSFComment; import org.apache.poi.hssf.usermodel.HSSFPatriarch; import org.apache.poi.hssf.usermodel.HSSFClientAnchor;

原创 |我是如何解决POI解析Excel出现的OOM问题的?

喜夏-厌秋 提交于 2020-03-17 15:57:07
背景 之前接手过一个解析Excel的项目,使用的是Java里的POI组件解析的,但是在解析时候经常出现OOM,后来我从下面几个方面优化了下,解决了99%的问题,对,你没看错,只解决了99%。 解决方案 1.调整JVM的堆内存 我们知道几乎所有的java对象实例都存放在Java堆中,出现OOM肯定是堆内存不够用了,所有先调大堆内存。 下面命令把JVM启动后堆的初始内存和最大内存调整为4g: java -Xms4g -Xmx4g 2.限制Excel大小 数据多占用内存就大,在观察了一段时间后发现有的excel是有图片或者有几十个sheet页,而真正需要解析的数据可能就几百行,所以直接在上传时候限制了Excel文件的大小。 3.修改POI源码 上面两个方案后虽然出现OOM的频率低了,但是还是会有,后来找了几个报OOM的Excel跟踪POI源码,发现好多空行POI都创建了对象,直接修改成 空行不处理就好了。 项目中使用的POI版本是3.17,修改的是XSSFSheet.java的initRows()方法,改后的代码如下,其实只加了三行代码(包含大括号): private void initRows(CTWorksheet worksheetParam) { _rows.clear(); tables = new TreeMap<String, XSSFTable>();

SpringBoot打成jar包部署,Excel模板下载文件遇到的问题

删除回忆录丶 提交于 2020-03-16 18:46:20
某厂面试归来,发现自己落伍了!>>> 问题一. 读取resource 目录下文件时出现路径找不到 在本机测试都很顺利,当打包jar文件放到服务器上测试的时候发现了类似下面的异常信息: java.nio.file.NoSuchFileException: file:/app.jar!/BOOT-INF/classes!/xxx.xlsx 原因:spring boot 将项目打包为jar,使用 java - jar 包名 在服务器上运行。此时文件为打包文件,所以不能通过路径获取到文件。类似不能读取压缩包中的文件,必须先解压缩。结论:spring boot 中的文件只能通过流来进行读取。 可以通过以下方法进行流的读取。 InputStream in = this.getClass().getClassLoader().getResourceAsStream("xxx.xlsx"); 问题二. Excel模板下载文件损坏 在本机测试都很顺利,当打包jar文件放到服务器上时下载完文件提示文件损坏 问题原因分析: 一开始度娘查到各种各样的说法,比如修改response请求回应头,比如使用ByteArrayHttpMessageConverter,比如修改文件读取方式,没点屁用!! 后面看到另外一篇文章,maven 打包的时候,使用了filter,其原理是处理文本文件,并将其替换变量

Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案

こ雲淡風輕ζ 提交于 2020-03-16 18:27:18
某厂面试归来,发现自己落伍了!>>> 注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的dump文件,发现在发生OOM时创建了大量的String对象。最后对照时间点,发现宕机的时候业务人员在上传一个excel文件,但是这个excel文件才28MB大小,感觉应该不会引起内存溢出。后来在本地启动了服务,然后尝试上传这个excel文件,同时使用Java VisualVM监控GC情况,发现在上传的时候,创建了大量的String对象,后来老年代没有可分配空间导致了OOM。最终分析结果是,excel文件中存在几十万的空行数据,表面上看,这些空行数据跟不存在数据的行是一样的,但是POI会把这种空行数据读入到内存中,感觉这也是一个坑。 在网上搜了很长时间,发现国内网站上的解决方案真是没法看,基本上答案都差不多,没有什么有见解性的解决方法,后来在stackoverflow上找到了解决方法。算是给自己做一下备注,也想帮助一些还在坑里的人,就分享一下,只是自己的见解,有不得当的地方也请见谅。 常规读取方法 通常在读取excel文件时(.xlsx),是使用如下代码进行加载的: FileInputStream fi = new FileInputStream(

Java的poi技术读取和导入Excel

一世执手 提交于 2020-03-14 10:07:42
报表输出是 Java 应用开发中经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑。 Java 程序由于其跨平台特性,不能直接操纵Excel。因此,本文探讨一下POI视线Java程序进行Excel的读取和导入。 项目结构: 用到的Excel文件: XlsMain .java 类 //该类有main方法,主要负责运行程序,同时该类中也包含了用poi读取Excel(2003版) import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; /** * * @author Hongten</br> * * 参考地址:http://hao0610.iteye.com/blog