poi

三行代码嵌入 java 实现复杂 Excel 数据入库

*爱你&永不变心* 提交于 2020-10-22 00:58:45
一般常规办法:先使用POI或者HSSFWorkbook等第三方类库对其表格数据结构化,再用SQL语句写入数据库。由于Java并没有表格对象,总要利用集合加实体类去实现(硬编码),如果碰到格式复杂的表格,解析难度大,工作量会成倍增加,代码不仅冗长、且很难通用。 比如要处理这么个场景:数据库表Logistics有3个字段:Shippers、Region、Quantity。解析如下Excel表格,并入库: 入库后的效果: Java代码大概要写成这样子: ... File target = new File(filepath, filename); FileInputStream fi = new FileInputStream(target); HSSFWorkbook wb = new HSSFWorkbook(fi); HSSFSheet sheet = wb.getSheetAt(sheetnum); int rowNum = sheet.getLastRowNum() + 1; for (int i = startrow; i < rowNum; i++) { PageData varpd = new PageData(); HSSFRow row = sheet.getRow(i); int cellNum = row.getLastCellNum(); ... } ...

学术分享丨假肢手的综述(2)

╄→гoц情女王★ 提交于 2020-10-18 17:22:14
   随着学会的队伍不断发展壮大,分支机构的发展愈发完善,丰富多彩的分支活动与学术分享也频频呈现。今年以来,CAAI认知系统与信息处理专委会积极倡导学会“疫情防控不放松,学习充电不间断”的理念,邀请年轻学者结合本专委会自身领域研究精选相关文献进行研究与再解读,本期与大家分享《假肢手的综述(2)》。   第一次假手的应用可以追溯到第二次布匿战争早期(公元前218-201年),罗马将军马库斯·塞尔吉乌斯(Marcus Sergius)在战争中失去了右臂,他的假手臂是用铁制成的。   在16世纪早期,德国雇佣兵戈兹·冯·贝里辛根戴着两只假手。第一个是一个简单的装置,由一个拇指和手指连接的手套组成。手指可以向内移动,这样他就可以握紧他的剑了。另一种升级版的手可以独立移动指骨和拇指,骑士可以握住马缰,拿起羽毛笔。16世纪中叶,法国军医Ambroise Pare发明了弹簧式假肢,手指可以用杠杆和齿轮独立操作。Pare还开发了肘部假手上方,杠杆和链轮机构控制着屈伸。自动身体动力假肢始于18世纪的彼得·巴利夫(Peter Baliff),假肢由肩部和躯干的完整肌肉驱动,使用皮革带作为传输机制。1911年,威廉·T·卡恩斯(William T.Carnes)发明了另一种复杂的机械假肢并获得了专利。以上假体受健康肢体或胸部的整体运动控制。   19世纪初,随着朱利亚诺·万赫蒂博士的“电影整形植入物

【后端BUG集】poi版本导致报错

南笙酒味 提交于 2020-10-18 13:31:23
查询线上版本poi-3.7-20101029.jar、poi-ooxml-3.7-20101029.jar,本地开发环境版本poi-3.12-20150511.jar、poi-ooxml-3.12-20150511.jar 一、CellStyle.setFillForegroundColor(IndexedColors.YELLOW.index); 导出时单元格设置颜色,报错java.lang.NoSuchFieldError: index 在不换poi的前提下,修改代码如下:CellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex()); 二、java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFWorkbook.close() 3.7版本自动close?在不换poi的前提下,暂时注释相关代码 三、java.lang.NoClassDefFoundError: org/apache/poi/xssf/streaming/SXSSFWorkbook 3.7没有SXSSFWorkbook? https://blog.csdn.net/justry_deng/article/details/83005889 一定要换版本了吗... 2020-05

10w行级别数据的Excel导入优化记录

旧时模样 提交于 2020-10-16 08:52:21
需求说明 项目中有一个 Excel 导入的需求:缴费记录导入 由实施 / 用户 将别的系统的数据填入我们系统中的 Excel 模板,应用将文件内容读取、校对、转换之后产生欠费数据、票据、票据详情并存储到数据库中。 在我接手之前可能由于之前导入的数据量并不多没有对效率有过高的追求。但是到了 4.0 版本,我预估导入时Excel 行数会是 10w+ 级别,而往数据库插入的数据量是大于 3n 的,也就是说 10w 行的 Excel,则至少向数据库插入 30w 行数据。因此优化原来的导入代码是势在必行的。我逐步分析和优化了导入的代码,使之在百秒内完成(最终性能瓶颈在数据库的处理速度上,测试服务器 4g 内存不仅放了数据库,还放了很多微服务应用。处理能力不太行)。具体的过程如下,每一步都有列出影响性能的问题和解决的办法。 导入 Excel 的需求在系统中还是很常见的,我的优化办法可能不是最优的,欢迎读者在评论区留言交流提供更优的思路 声明:本文首发于博客园,作者:后青春期的Keats;地址: https://www.cnblogs.com/keatsCoder/ 转载请注明,谢谢! 一些细节 数据导入:导入使用的模板由系统提供,格式是 xlsx (支持 65535+行数据) ,用户按照表头在对应列写入相应的数据 数据校验:数据校验有两种: 字段长度、字段正则表达式校验等

Spring-Boot快速集成jxls-poi (自定义模板,支持本地文件导出,在线文件导出)

那年仲夏 提交于 2020-10-08 03:31:07
Spring-Boot快速集成jxls-poi (自定义模板,支持本地文件导出,在线文件导出) 在项目持续集成的过程中,有时候需要实现报表导出和文档导出,类似于excel中这种文档的导出,在要求不高的情况下,有人可能会考虑直接导出csv文件来简化导出过程。但是导出xlsx文件,其实过程相对更复杂。解决方案就是使用poi的jar包。使用源生的poi来操作表格,代码冗余,处理复杂,同时poi的相关联的依赖还会存在版本兼容问题。所以直接使用poi来实现表格导出,维护成本大,不易于拓展。 我们需要学会站在巨人的肩膀上解决问题,jxls-poi这个就很好解决这个excel表格导出的多样化的问题。类似jsp和thymealf的模板定义,使得表格导出变得简单可控。 不多BB上代码 1.引入关键依赖包 <!-- jxls-api依赖 --> < dependency > < groupId > org.jxls </ groupId > < artifactId > jxls-poi </ artifactId > < version > 1.0.15 </ version > </ dependency > < dependency > < groupId > org.jxls </ groupId > < artifactId > jxls </ artifactId > < version

【bzoj3522】[Poi2014]Hotel 树形dp

女生的网名这么多〃 提交于 2020-10-06 07:04:49
题目描述 有一个树形结构的宾馆,n个房间,n-1条无向边,每条边的长度相同,任意两个房间可以相互到达。吉丽要给他的三个妹子各开(一个)房(间)。三个妹子住的房间要互不相同(否则要打起来了),为了让吉丽满意,你需要让三个房间两两距离相同。 有多少种方案能让吉丽满意? 输入 第一行一个数n。 接下来n-1行,每行两个数x,y,表示x和y之间有一条边相连。 输出 让吉丽满意的方案数。 样例输入 7 1 2 5 7 2 5 2 3 5 6 4 5 样例输出 5 题解 树形dp 如果树上三个点之间两两距离相同,那么距离一定为偶数,且这三条路径的中点重合。 那么我们可以枚举这个中点,要求的就是选出三个点到这个中点距离相同的方案数。 设f1[i]表示选出1个深度为i的点的方案数,f2[i]表示选出2个深度为i的点的方案数,f3[i]表示选出3个深度为i的点的方案数。 然后树形dp乱搞就行了。 注意清空数组不能使用memset,必须要动态清空。 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define N 5010 typedef long long ll; int n , head[N] , to[N << 1] , next[N << 1] , cnt , deep[N] ,

Cesium项目实战(5)-城市各类POI数据制作、加工、展示

喜欢而已 提交于 2020-10-05 06:15:31
百度百科关于POI是这样解释的。POI是"Point of Interest"的缩写,中文可以翻译为"兴趣点"。在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。每个POI包含四方面信息,名称、类别、坐标、分类,全面的POI讯息是丰富导航地图的必备资讯,及时的POI兴趣点能提醒用户路况的分支及周边建筑的详尽信息,也能方便导航中查到你所需要的各个地方,选择最为便捷和通畅的道路来进行路径规划,因此,无论是车载导航还是手机导航,导航地图POI多少状况直接影响到导航的好用程度,导航地图中POI信息点的多少以及信息的准确程度和信息更新速度,都严重影响到一款导航的使用情况。 我们可以理解为POI在任何一个GIS系统中,都占据了非常重要的地位。因此,如何收集POI信息,以及如何在三维场景中显示这些POI信息也是非常重要的。很幸运的是,我们获取到了一份北京市较全的POI数据,大概15万条记录,本篇文章就这个数据着重介绍一下,如何加载POI信息。 笔者获取到的数据为SHP格式,classify为分类属性,本文中,提炼了4s店、餐饮、地铁站、汽车站、超市5个种类,作为示例。 在本篇“城市各类POI数据制作、加工、展示”中我们主要包括如下几个可视化内容。 普通直接加载 默认启用汇聚加载 自定义汇聚加载 1. 普通直接加载 普通直接加载,主要是针对于POI数量比较少的情况下

Springboot2.X + Smart-doc快速构建接口文档工具(75)

蓝咒 提交于 2020-10-04 03:47:45
1、设置方法注释 首先每个人都应该拥有写注释的规范,IDEA设置如下: 接口统一规范 /** * * @author mujiutian * @date $DATE$ $TIME$ * @param $params$ */ 2、 pom依赖添加插件 <plugin> <groupId> com.github.shalousun </groupId> <artifactId> smart-doc-maven-plugin </artifactId> <version> 1.1.0 </version> <configuration> <!--指定生成文档的使用的配置文件,配置文件放在自己的项目中--> <configFile> ./src/main/resources/smart-doc.json </configFile> <!--指定项目名称--> <projectName> 测试 </projectName> <!--smart-doc实现自动分析依赖树加载第三方依赖的源码,如果一些框架依赖库加载不到导致报错,这时请使用excludes排除掉--> <excludes> <!--格式为:groupId:artifactId;参考如下--> <!--1.0.7版本开始你还可以用正则匹配排除,如:poi.* --> <exclude> com.alibaba:fastjson <

HomeFinder Revisited: Finding Ideal Homes with Reachability-Centric Multi-Criteria Decision Making

主宰稳场 提交于 2020-10-01 07:00:16
论文传送门 视频 摘要 找到一个理想的家是一个艰难而又艰辛的过程。这一过程中最关键的因素之一是家庭所在地和相关兴趣点(如工作场所和娱乐设施)之间的可及性。然而,这种重要性在现存的房地产系统中是没有被认识到的。通过在寻找理想住宅的背景下描述用户需求和分析任务,我们设计了 ReACH,这是一个新颖的可视分析系统,可以帮助人们根据包括可达性在内的多种标准来寻找、评估和选择住宅。此外,我们开发了一个改进的数据驱动模型,用于用大量的滑行轨迹来近似可达性。这种模式使用户能够交互式地整合他们的知识和偏好,以做出明智和明智的决策。通过与先前的研究的理论复杂性进行比较,我们展示了我们模型中的改进,并通过基于任务的评估证明了所提出系统的可用性和有效性。 Introduction 挑战: 可达性计算的效率 日常路径的表达 个人偏好的整合 解决: 设计了一个新的基于图的索引和查询算法的可达性模型,以有效地估计具有大量轨迹的位置的可达性。 引入了一个新颖的时间线视图来支持复杂可达性约束的编排、组织和可视化,作为用户日常路径的表示。 设计并开发了一个可视分析系统,称为Reachability-Aided Contemporary HomeFinder(ReACH),以帮助用户交互查询,过滤和评估候选家庭,以确定他们的理想家园。 贡献: 我们在寻找理想家园的背景下描述了用户需求和分析任务

java中使用poi实现合并word文档,兼容图片的合并并分页

徘徊边缘 提交于 2020-09-30 14:46:58
最近需要做一个java合并wrod的实现方法,网上查了看看发现有的方法word里的图片没办法正确的合并到目标文件。后来又查了下,综合了一下自己写了个测试方法,顺手记了一下。 package com.fosung.pb.develop.report.service; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.xwpf.usermodel.Document; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFPictureData; import org.apache.xmlbeans.XmlOptions; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBody; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.ArrayList; import java