用apache poi(Java)创建的Excel文件可以#39;不能在Windows上打开
在我的系统中,我有一个可以创建带有一些数据的Excel的类. 基本上,我从变量ArrayList>中读取所有字符串值,然后将它们写入Excel单元格中. public void writeData(Data data, int sheetNumber) throws EncryptedDocumentException, InvalidFormatException, IOException { org.apache.poi.ss.usermodel.Workbook workbook; try { workbook = WorkbookFactory.create(new File(path)); } catch (FileNotFoundException e) { workbook = new HSSFWorkbook(); } org.apache.poi.ss.usermod
0 2023-12-06
编程技术问答社区
POI-当文件在Excel中打开时无法写入文件?
我在网站上是新手.我尝试在打开时写入Excel文件(使用POI/Java). 我尝试创建文件输出流以写入文件时出现了java.io.FileNotFoundException错误. FileOutputStream无效.我收到以下消息: 该过程无法访问该文件,因为另一个过程是由另一个文件使用的 过程. try { FileOutputStream fileOut; XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream("Classeur.xlsm")); ... ... fileOut = new FileOutputStream("Classeur.xlsm"); wb.write(fileOut); fileOut.close();
0 2023-12-05
编程技术问答社区
如何在Excel中设置单元格宽度为两个小数点的Apache POI
IM试图将固定的单元格值精确地分为两个小数点.但是,当生成Excel文件时,单元格宽度将被四舍五入为我要实现的宽度大小的整数.可以做到吗? private Sheet setupSheet(XSSFWorkbook workbook) { Sheet xssfSheet; xssfSheet = workbook.createSheet("report"); xssfSheet.getPrintSetup().setLandscape(true); xssfSheet.getPrintSetup().setPaperSize(HSSFPrintSetup.A4_PAPERSIZE); xssfSheet.setMargin(Sheet.HeaderMargin, 0.1); xssfSheet.setMargin(Sheet.BottomMargin, 0.1); xssfSheet.setMargin(Sheet.Le
2 2023-12-03
编程技术问答社区
POI 3.7 当实例化一个字体时出现java.lang.IncompatibleClassChange错误。
我正在获得Java.lang.incompatibleclassChangeError,带有以下片段: Workbook workbook = new HSSFWorkbook(); Font arial = workbook.createFont(); // java.lang.IncompatibleClassChangeError thrown here 我正在使用WebSphere 7 Portal Server使用POI 3.7.相同的代码(据我所知,相同的罐子)与NetBeans Console应用程序一起使用.似乎3.7罐子是班级路径中唯一的罐子.该项目还使用JasperReports 4.1.2.我可以提供更多信息吗? 解决方案 我几乎可以肯定您在classpath上有一个较旧的POI poi faq ,这涵盖了这种情况.您需要使用那里的代码来确定POI的额外副本来自何处,并ZAP of old Jar
0 2023-12-03
编程技术问答社区
如何在Eclipse-for Selenium Webdriver项目中添加Apache POI库?
我需要将Apache POI添加到我的项目中(我需要HSSF,SS和XSSF).我从Internet下载了一个JAR文件,但不包含XSSF.我去了 http://poi.apache.org/我下载了此: http:///www.apache.org/gace.org/dyn/closer .我尝试了第1部分,但这仅适用于Javadoc. 我应该如何从这里进行? 解决方案 下载最新的稳定版本:Apache POI 3.16-Final 发行版, 打开您的日食项目属性, java构建路径>库>添加外部罐子, 然后提取您下载的zip文件并导航提取的文件夹, 选择子文件夹下的所有罐子(doc,lib,ooxml-lib), 最终以订单和导出部分为刚添加的罐子里放置标记, 然后单击"确定". 其他解决方案 向答案提出评论 您应该前往 apache poi下载页面,然后下载 发布.二进制版本的文件名中具有-bin-.二进制版本包含
2 2023-11-30
编程技术问答社区
使用Apache Poi生成大量excel文件时出现Socket异常
我在生成批量数据的Excel文件时获得了SocketConnectionException(超过50万记录). 我的Web应用程序的代码将其写入`utputStream.这是代码的片段: while (sr.next()) { counter++; //advance counter view = (DataClass) sr.get(0); try { //writing fields values for Activity Report file reportService.writeExcelFieldsValue(rowCounter,sheet,view,user,exportedFields); rowCounter++; } catch (Exception e) { throw new RuntimeException(e);
2 2023-11-29
编程技术问答社区
用java替换word文档模板中的变量
我想加载一个模板文档以将内容添加到并保存为新文档.我正在处理.doc文件. 经过长时间的研究,我只找到了DOCX的解决方案: http://www.smartjava.org/content/create-complex-word-docx-documents comprogratication-docx4j .sambhashanam.com/mail-merge-in-java-in-microsoft-word-word-document-part-i/ 因此,我想用其值替换以这种格式编写的任何变量. 我可以使用速度或apache-poi做到这一点,什么是最好的解决方案. 任何帮助将不胜感激. 解决方案 是的,您可以使用Apache-Poi进行.您的变量名称必须是唯一的.请参阅以下代码 import java.io.FileInputStream; import java.io.FileNotFoundException; import jav
2 2023-11-17
编程技术问答社区
随机删除MS excel表格中30%的单元格数据
我有一个带有200行和150列(即30000个单元格)的Excel板.我想随机删除总数据的30%(即从随机行和随机列).如果我一次可以从一列随机删除30%的数据,也应该很好. 请建议一个宏/公式/Java代码(使用POI)可以帮助我实现同样的方法. 预先感谢! 解决方案 选择要使用的范围并运行此宏,或者,如果您具有固定范围,则将Set rng = Selection更改为Set rng = Range("A1:ET200")或任何范围. Sub DelThirty() Dim rng As Range Dim i As Long, x As Long, y As Long Set rng = Selection On Error GoTo ErrHandler Application.Calculation = xlCalculationManual Application.ScreenUpdating = False For i = 1 To Int(
0 2023-11-17
编程技术问答社区
验证:如何检查上传的文件是否为excel格式?
有什么办法可以检查上传的文件是否以Excel格式进行?我正在使用Apache POI库读取Excel,并在读取文件时检查上传的文件扩展名. 获得扩展名的代码段 String suffix = FilenameUtils.getExtension(uploadedFile.getName()); 礼貌String fileExtension = FilenameUtils.getExtension(uploadedFile.getName()); if ("xls".equals(fileExtension)) { //rest of the code } 我敢肯定,这不是正确的验证方式. 浏览按钮的示例代码
0 2023-11-13
编程技术问答社区
如何在java中使用apache poi为excel表的整列添加数据验证?
我有一个要求,我需要将数据验证添加到整列而不是特定的单元格中.我浏览了Apache Poi的文档,并找到了下面的示例 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("Data Validation"); CellRangeAddressList addressList = new CellRangeAddressList(0, 0, 0, 0); DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint( new String[]{"10", "20", "30"}); DataValidation dataValidation = new HSSFDataValidation (addressList, dvConstraint); dataVali
0 2023-11-13
编程技术问答社区
如何使用POI解析Excel文件中的UTF-8字符
我一直在使用POI成功解析XLS和XLSX文件.但是,我无法从Excel电子表格中正确提取特殊字符,例如中文或日语的UTF-8编码字符.我已经弄清楚了如何从UTF-8编码的CSV或选项卡划界文件中提取数据,但是Excel文件没有运气.谁能帮忙? ( edit: code acdipt from commist ) HSSFSheet sheet = workbook.getSheet(worksheet); HSSFEvaluationWorkbook ewb = HSSFEvaluationWorkbook.create(workbook); while (rowCtr
0 2023-11-11
编程技术问答社区
Java。Apache POI Excel电子表格GUI视图
我的Java应用程序正在使用Apache Poi读取/写Excel文件.据我所知,Apache Poi不包括对散布表查看GUI的支持. 所以我的问题是:在我的应用程序中显示类似Excel的电子表格查看GUI的最佳方法是什么?我知道我可以在所有电子表格信息中使用POI解析,然后将其输入一些自定义的Java GUI组件,但这确实是贫民窟……尤其是Java的GUI(EW). 任何建议将不胜感激.谢谢 解决方案 如果您在Eclipse中打开Excel表,则使用 ole/activex接口.也许您可以在Eclipse/SWT如何实现此目标中调查,并使用RCP应用程序与观看者相同的方式进行操作. 其他解决方案 aspose.cells 可以导出到PDF.您最初的问题含糊不清 - 只是显示/可打印好,还是必须交互式?
4 2023-11-11
编程技术问答社区
Excel超链接URI片段未编码
我有一个 的字符串 String uriString = "#'Tab1 Tab2'!A8"; URI uri = new URI(uriString); 这失败了,因为它不是形成良好的URI(有空间).所以我更改为 String uriString = "#'Tab1%20Tab2'!A8"; URI uri = new URI(uriString); 这是正确编码的,但片段变为"'tab1%20tab2'!a8" 然后在excel中链接(附加到图像)指向" tab1%20tab2'!a8",不存在. 我试图将构造函数更改为 URI uri = new URI(null,null,uriString,null,null) 现在在Excel上的链接是"%23'TAB1 TAB2'!a8",现在不起作用,因为现在已转换的主题标签.这让我发疯. 这是构建URI并设置链接的代码 String hyperlinkAddress =
2 2023-11-09
编程技术问答社区
如何用apache-pai java为将数据写入word文档的类编写单元测试?
我用Apache-Poi(Poi-ooxml版本3.15)创建了一个单词文档,现在我想为我的类编写单元测试.最好的方法是什么?我们在项目中使用Mockito(2.15.0). 这是我要编写测试的课程之一: @Component public class ProffesionalSumaryService { public void populateDocumentWithProfileSkills(XWPFDocument document, ExportProfileDTO profileData){ XWPFTable antet = document.createTable(); antet.getCTTbl().getTblPr().getTblBorders().getBottom().setColor(COLOR_OF_TABLE_BORDERS); antet.getCTTbl().getTblPr().getT
2 2023-11-07
编程技术问答社区
使用apache poi读取.xlsx文件在linux机器上出现org.apache.poi.POIXMLException
我有一个应用程序,该应用程序读取.xlsx文件并向用户显示内容.该应用程序在Windows环境上正常工作. 我在ubuntu服务器上的tomcat6上部署了此Web应用程序的.war文件.我还复制了服务器上的.xlsx文件. 代码中文件的路径正确. 但是线 FileInputStream file = new FileInputStream(new File(FileName)); XSSFWorkbook workbook = new XSSFWorkbook(file); 给出一个错误 java.lang.reflect.InvocationTargetException org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSF
10 2023-11-02
编程技术问答社区
如何用POI SS/XSSF移位表?
我正在使用poi xssf api,我想转纸. 我该怎么做? 谢谢. 解决方案 转置,例如在与b1和a3的交换A2中(柱变为行)? ? 如果是这样,则没有内置,因此您需要自己编码一些.您可能想抓住一对单元格,保存一个(值和样式)的内容,将第二个复制到第一个,然后覆盖第二个. 请参阅快速指南如果您不确定所有阅读/写作零件. 其他解决方案 我正在寻找相同的答案,必须自己编码.我附上了非常简单的解决方案: 确定行的数量 确定所使用的最大列数 迭代器在每一行和每个列上 将单元/列保存到一个简单列表中,作为" cellmodel"类型 完成后,迭代所有细胞模型 开关列和行索引,然后将CellModel保存到工作表中 我使用的代码是: public static void transpose(Workbook wb, int sheetNum, boolean replaceOriginalSheet) { Sheet s
4 2023-10-25
编程技术问答社区
java.net.UnknownHostException 无法在 selenium 中解决
直到昨天,我一直在使用WebDriver Manager,它正在成功工作.但是今天它正在扔一些UnknownHostException 我的依赖性: io.github.bonigarcia webdrivermanager 3.0.0 test 这是我打开浏览器的方式: WebDriverManager.chromedriver().setup(); driver = new ChromeDriver(); 我找不到Perfect Solution,但是正在得到some solution not clear你们能帮我帮助我! 我的错误: [INFO] Running TestSuite
10 2023-10-25
编程技术问答社区
使用Apache POI库从Excel(xlsx)文件中读取,抛出NullPointerException
i'm使用Eclipse IDE构建JSP Web应用程序. Web应用程序在Tomcat Server Ver Ver 7上加载无问题.我们有一个新的要求从XLS和XLSX文件中读取.因此,我们已经使用Apache POI库(4.1.2)实现了以下操作:我已经取出了其他代码,因为它们与此帖子无关紧要 FileInputStream file = new FileInputStream(new File(args[0])); //Create Workbook instance holding reference to .xlsx file XSSFWorkbook workbook = new XSSFWorkbook(file); //
6 2023-10-24
编程技术问答社区
输出到Excel的JSF和PrimeFaces
使用JDK 1.6,JSF 2.1,PrimeFaces 2.2.1,POI 3.2和Apache Tomcat 7 我正在尝试设置servlet,以允许根据用户选择下载Excel文件. Excel文档是在运行时创建的. 没有错误,代码确实进入了servlet. 我单击按钮,什么也不会发生.我不使用PrimeFaces使用的数据导出,因为我需要对Excel文档中的数据进行重新排序和自定义格式. exportexcelreports.java protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/vnd.ms-excel"); response.
8 2023-10-24
编程技术问答社区