poi

POI3.10.FINAL的word插入图片bug

若如初见. 提交于 2020-04-07 08:48:22
查看poi源代码,发现添加图片方法存在bug,注释已经标明,如下: private List<CTPicture> getCTPictures(XmlObject o) { List<CTPicture> pictures = new ArrayList<CTPicture>(); XmlObject[] picts = o.selectPath("declare namespace pic='"+CTPicture.type.getName().getNamespaceURI()+"' .//pic:pic"); for(XmlObject pict : picts) { if(pict instanceof XmlAnyTypeImpl) { // Pesky XmlBeans bug - see Bugzilla #49934 try { pict = CTPicture.Factory.parse( pict.toString() ); } catch(XmlException e) { throw new POIXMLException(e); } } if(pict instanceof CTPicture) { pictures.add((CTPicture)pict); } } return pictures; }

【XJOI】【NOI考前模拟赛7】

点点圈 提交于 2020-04-07 08:25:51
DP+卡常数+高精度/ 计算几何+二分+判区间交/ 凸包   首先感谢徐老师的慷慨,让蒟蒻有幸膜拜了学军的神题。祝NOI2015圆满成功   同时膜拜碾压了蒟蒻的众神QAQ 填填填   我的DP比较逗比……(当时看到其他大神有更加优秀的做法)   f[i][j]表示前 i 个数,第一行填了 j 个的方案数,那么如果 i 并没有固定位置,f[i][j]=f[i-1][j]+f[i-1][j-1];即 i 这个数放在第一行或是第二行。。。(废话)   如果 i 固定的位置是第一行(1,y),那么f[i]中只有f[i][y]=f[i-1][y-1];(这个数一定放在第一行)   如果 i 固定的位置是第二行(2,y),那么f[i]中只有f[i][i-y]=f[i-1][i-y];(一定放在第二行)   这个DP是会爆空间的,但是我们发现f[i]只跟f[i-1]有关,所以滚动数组优化一下就好了……(我一开始还在蛋疼高精度的数组开不下)   我比较傻逼,不知道XJOI是不能用#ifndef ONLINE_JUDGE的,所以第一题没删文件操作……爆零滚粗了,删掉后是70分,两RE四TLE。   然后开始了漫漫卡常之路……比如高精从int压9位改成long long压17位,高精加的过程用指针实现(Orz Davidlee1999)   RE的那两个点是怎么回事呢?因为如果 i

使用POI读写word docx文件

我是研究僧i 提交于 2020-04-07 08:02:04
POI在读写word docx文件时是通过xwpf模块来进行的,其核心是XWPFDocument。一个XWPFDocument代表一个docx文档,其可以用来读docx文档,也可以用来写docx文档。XWPFDocument中主要包含下面这几种对象: l XWPFParagraph:代表一个段落。 l XWPFRun:代表具有相同属性的一段文本。 l XWPFTable:代表一个表格。 l XWPFTableRow:表格的一行。 l XWPFTableCell:表格对应的一个单元格。 1 读docx文件 跟读doc文件一样,POI在读docx文件的时候也有两种方式,通过XWPFWordExtractor和通过XWPFDocument。在XWPFWordExtractor读取信息时其内部还是通过XWPFDocument来获取的。 1.1 通过XWPFWordExtractor读 在使用XWPFWordExtractor读取docx文档的内容时,我们只能获取到其文本,而不能获取到其文本对应的属性值。下面是一段使用XWPFWordExtractor来读取docx文档内容的示例代码: public class XwpfTest { /** * 通过XWPFWordExtractor访问XWPFDocument的内容 * @throws Exception */ @Test public

POI读写Word docx文件

不羁的心 提交于 2020-04-07 08:01:13
标签: poi word docx | 发表时间:2014-04-18 15:56 | 作者:234390216 分享到: 出处:http://www.iteye.com 使用 POI 读写 word docx 文件 目录 1 读docx文件 1.1 通过XWPFWordExtractor读 1.2 通过XWPFDocument读 2 写docx文件 2.1 直接通过XWPFDocument生成 2.2 以docx文件作为模板 POI在读写word docx文件时是通过xwpf模块来进行的,其核心是XWPFDocument。一个XWPFDocument代表一个docx文档,其可以用来读docx文档,也可以用来写docx文档。XWPFDocument中主要包含下面这几种对象: l XWPFParagraph:代表一个段落。 l XWPFRun:代表具有相同属性的一段文本。 l XWPFTable:代表一个表格。 l XWPFTableRow:表格的一行。 l XWPFTableCell:表格对应的一个单元格。 1 读docx文件 跟读doc文件一样,POI在读docx文件的时候也有两种方式,通过XWPFWordExtractor和通过XWPFDocument。在XWPFWordExtractor读取信息时其内部还是通过XWPFDocument来获取的。 1.1

入门级科普:五分钟让你的应用拥有高精度定位功能

左心房为你撑大大i 提交于 2020-04-06 21:44:42
本文作者:用户_123456789 什么是智能定位服务 定位能力即帮助用户解决“我在哪”的问题,依托百度位置大数据及多种混合定位方式,百度地图开放平台为智能穿戴、用车出行、快递物流、生活服务、社交通讯、在线旅游等百万行业开发者提供了智能定位服务,帮助开发者实现用户的精准定位、地理围栏监管提醒、位置大数据分析等功能。 百度地图提供哪些类型的定位服务 目前百度地图Android定位SDK对非商业目的使用的开发者不收取任何费用。考虑到不同行业开发者的实际情况,百度地图贴心的开放了不同类型的定位服务能力满足不同需求的开发者。 1.Andriod定位SDK/iOS定位SDK服务:适用于Android或 iOS端应用; 2.智能硬件定位API:适用于智能硬件设备,从服务端获取用户位置信息; 3.JS API:适用于网页版应用; 4.IP定位API:适用于通过IP获取用户当前位置信息。 同时,开发者可根据自身服务的场景选择不同的定位模式、不同的坐标系等。例如对定位精度要求较高且无功耗要求的场景可选择高精度定位模式;对功耗要求较高的使用场景可使用低功耗模式定位;强依赖于GPS模块的定位模式,例如驾车、骑行、室外运动记录等可选择设备模式定位。 百度地图智能定位服务有哪些优势 百度地图的定位成功率高达99.6%,网络定位速度达到0.2秒。综合定位精度可达到38米(GPS定位精度达到10米,Wi

在Apache的POI XWPFRun对象分隔文本行

扶醉桌前 提交于 2020-04-06 20:50:05
问 题 我是试图取代模板 DOCX 与Apache POI文件使用 XWPFDocument 类。我在doc和 JSON 文件标签读取替换数据。我的问题是一个文本行,似乎在 DOCX以某种方式分离当我改变其推广到邮政编码文件打开 document.xml 。例如 [MEMBER_CONTACT_INFO] 文本成为 [MEMBER_CONTACT_INFO 和] 分别。 POI 在自 DOCX 原来是这样以同样的方式读取此。这将在第2款 XWPFRun 对象这显示文本为 [MEMBER_CONTACT_INFO 和] 分开。 我的问题是,有没有办法迫使 POI 通过合并相关的运行或类似的东西,如Word运行?或者,我怎么能解决这个问题?我正在运行的匹配,而文本替换因为它被分成2个不同的运行对象我找不到我的标签。 最佳 解决方案 这浪费了那么多我的时间...一次 基本上,一个 XWPFParagraph 是由多个的 XWPFRun s和XWPFRun是具有固定的传染性文本同样的风格。 所以,当你尝试写一些像“[PLACEHOLDER_NAME]”在MS-Word中它会创建一个单一的XWPFRun。但是,如果你不小心添加了一些东西多了,然后你回去改“[PLACEHOLDER_NAME]”以别的东西它永远不会保证它仍将是一个 XWPFRun 它很可能,这将拆分到两分。据我所知,这是MS

解决Java POI导出海量Excel数据内存溢出

核能气质少年 提交于 2020-04-06 17:00:56
使用POI导出Excel数据的时候有两个方法可以创建WorkBook: HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx 当数据量超出65536条后,在使用HSSFWorkbook或XSSFWorkbook,程序会报 OutOfMemoryError:Javaheap space 内存溢出错误。 从POI 3.8版本开始,提供了一种基于XSSF的低内存占用的API,也就是SXSSFWorkbook。 SXSSFWorkbook-来至官方的解释:实现“BigGridDemo”策略的流式XSSFWorkbook版本。这允许写入非常大的文件而不会耗尽内存,因为任何时候只有可配置的行部分被保存在内存中。您可以提供用作书面数据基础的模板工作簿。有关详细信息,请参见https://poi.apache.org/spreadsheet/how-to.html#sxssf 请注意,仍然可能会消耗大量内存,这些内存基于您正在使用的功能,例如合并区域,注释......仍然只存储在内存中,因此如果广泛使用,可能需要大量内存。SXSSFWorkbook默认使用 内联字符串而不是共享字符串表 。这非常有效,因为没有文档内容需要保存在内存中,但也被称为制作与某些客户不兼容的文档

阿里巴巴的26款超神Java开源项目

情到浓时终转凉″ 提交于 2020-04-06 12:13:59
1.分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。 地址: https://github.com/spring-cloud-incubator/spring-cloud-alibaba 2. JDBC 连接池、监控组件 Druid Druid是一个 JDBC 组件。 1.监控数据库访问性能。 2.提供了一个高效、功能强大、可扩展性好的数据库连接池。 3.数据库密码加密。 4.SQL执行日志。 地址: https://github.com/alibaba/druid 3. Java 的 JSON 处理器 fastjson fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。 主要特点:快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson);强大

IDEA Gradle配置与使用

痴心易碎 提交于 2020-04-05 22:00:32
1.安装Gradle,并添加环境变量。 https://www.cnblogs.com/NyanKoSenSei/p/11458953.html 2.在IDEA中设置Gradle: 3.选中项目中的.gradle文件,右键选择"Import Gradle Project"。 4.接下来会弹出一个界面,Import Module From Gradle。 注意:Create separate module per source set这个不要勾选,不然一个module会分成多个部分。 5.成功导入依赖后,可以通过IDEA最右边的侧栏进行快捷操作。 点击刷新按钮,可以重新导入所有的依赖。 点击+号,并选中相关的.gradle文件,可以导入新的module。 6.在打开项目时,如果module还缺少某些依赖,可以直接在对应的类里面按alt+enter自动导入。 也可以点击File,打开Project Structure里面,点击Modules,点击dependencies,点击+号,导入jar包或者其他的module,如下所示: 7.在.gradle文件中添加新依赖,dir表示的是文件名,include中为jar包,如下: dependencies { compile fileTree(dir: trd, include: 'guava*.jar') compile fileTree

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

六眼飞鱼酱① 提交于 2020-03-31 15:06:39
目前,比较常用的实现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);