Tag: excel

Apache-POI在Excel中设置值,但是在我手动按下处理条中的enter之前,另一个单元格的公式无法使用该值

我写了一个程序,它将值写入xlsx文件。 乍一看它似乎应该像它应该的那样工作。 但是在我的xlsx文件中,我在另一个单元格中有一个公式,如果我手动输入值,它应该正常工作,但是如果我的程序设置完全相同的值,它就不会像它应该那样工作。 如果我在程序写入一个值后手动打开文件,并通过按下处理条中的回车按钮确认写入值,它就像它应该的那样工作。 没有抛出exception。 我的程序是在单元格N4和O4中写入。 这是我正在谈论的单元格的Excel公式: = + MAX(; MIN(O4 +(N4> O4); MAX(($ N $ 2> $ö$ 2); $ø$ 2)) – MAX(N4; $ N $ 2))+ MAX(; MIN(O4; MAX (($ N $ 2> $ O $ 2); $ O $ 2)) – MAX(; $ N $ 2)) (N4> O4)+ MAX(; MIN(O4 +(N4> O4); MIN(($ […]

如何使用POI加载大型xls文件时解决java堆空间错误

我正在尝试加载和解析一个11mb的xls文件,我正在使用WorkbookFactory.create(myFile)来加载它。但是我无法加载这个文件并解析它。任何人都可以帮助我解决这个问题我在我的程序中使用的代码, public class LargeExcelManager { private Workbook wb ; public Workbook getWb() { return wb; } public void setWb(Workbook wb) { this.wb = wb; } public LargeExcelManager(String fileName)throws Exception { openWorkbook(fileName); } private void openWorkbook(String fileName)throws Exception { try { System.out.println(“Can be added now”); File myFile = new File(fileName); this.setWb(WorkbookFactory.create(myFile)); // Here i am trying […]

在LibreOffice中不会自动调整Apache poi Excel行高

我正在使用apache poi来创建一个excel文件。 有些列包含大数据,我想自动调整行高。 请参阅我使用的示例程序。 如果我在Microsoft Excel和Mac OS Numbers应用程序中打开生成的excel文件,那么我可以看到行高自动调整但在LibreOffice (版本5.4.2.2。)中它不会自动调整。 我尝试在( row.setHeightInPoints((short)-1), row.setHeight((short)-1),row.setHeight((short)0) , row.setHeightInPoints((short)0))的解决方案( row.setHeightInPoints((short)-1), row.setHeight((short)-1),row.setHeight((short)0) , row.setHeightInPoints((short)0)) Apache POI中行的大小高度,但它不起作用。 任何帮助都将受到重视 import org.apache.poi.xssf.usermodel.*; import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOException; public class WriteExcelBasic { public static void main(String[] args) throws IOException { String excelFileName = “/Users/home/Test3.xls”; FileOutputStream fos = new FileOutputStream(excelFileName); XSSFWorkbook wb = new XSSFWorkbook(); […]

如何使用HSSFSheet Apache POI在Excel中创建具有多个样式的单元格?

我正在为excel创建导出文档的脚本。 如何通过合并几个细胞来获得像“ Name: Mark DOB: 11-11-2014”这样的细胞价值?

使用Apache POI基于csv表更新Excel工作表值

我还是java新手。 我对java语法有点问题。 我的程序应该执行以下过程: 1)它将csv文件作为输入。 2)它将excel文件作为输入。 3)它应该迭代写入日期的两个文件的第一列。 4)通过添加csv表中的信息来更新excel文件并保存其更改。 我有一个https://onedrive.live.com/?cid=24b4fceb4f4e4098&id=24B4FCEB4F4E4098%213018&authkey=%21AKKzaZsJ5pkd5NE 我有两个输入示例,结果excel表应该如何。 两个输入文件: 出口的CSV input.csv 出口Excel的input.xlsx 更新的excel文件应如下所示: 出口Excel的output.xlsx 我的Java代码: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.Reader; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVRecord; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.DataFormatter; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class CsvToExcelConverter […]

如何使用apache poi在.xlsx文件中检查单元格文本是否删除

我需要检查.xlsx文件(Microsoft Excel文件)中单元格的文本格式是否通过或不使用Apache POI库。 看下面的图片 请检查此图片! 我需要检查B3 Cell文本是否通过 。

使用Apache POI从java中读取和写入xls和xlsx excel文件

我正在编写一个程序,需要从excel文件中读取和写入,而不管格式(xls或xlsx)。 我知道Apache POI,但它似乎有不同的类来处理xls文件(HSSF)和xlsx(XSSF)文件。 任何人都知道如何实现我在这里尝试做的事情。 (也欢迎使用POI以外的API的想法)。

从java POI创建excel文件时出错

嗨,我想从java代码创建一个excel文件,我把这个代码放在eclipse上但没有任何反应 import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import java.io.FileOutputStream; public class TestPOI1 { public static void main(String[] args) { //create the new workbook Workbook workbook = new HSSFWorkbook(); try { //create the output stream to save the document on the hard drive FileOutputStream output = new FileOutputStream(“Test1.xls”); //write the file onto the hard drive workbook.write(output); //finish it […]

在java中使用apache事件模型解析excel文件时,如何检查字符串中的数字包含日期和指数

我正在解析一个excel文件,其中包含许多日期,如13-4-2021和一些数字,这3,7%,2,65%格式。所以我正在解析那个excel文件,我得到一个字符串中的数据写他们在一个文本文件中。所以我的问题是我得到了一个像44299这样的整数的日期,而它实际上是在excel工作表中的04/13/2021格式。另一个案例是我有一些像百分比一样的数字3,7%,2,65%即将到来,如3.6999999999999998E-2。所以我可以将数字转换成日期使用 SimpleDateFormat(“MM/dd/yyyy”).format(javaDate) 这是我正在使用的代码 private static class SheetHandler extends DefaultHandler { private SharedStringsTable sst; private String lastContents; private boolean nextIsString; private int rowNumber; private SheetHandler(SharedStringsTable sst) { this.sst = sst; } public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException { try { // row => row if(name.equals(“row”)) { if (attributes.getValue(“r”) != null) […]

使用jdbc访问excel作为数据库

我必须设计一个应用程序来访问excel应用程序作为数据库。 我的问题是我必须为每个事务创建多个连接,如果我错过任何关闭它,excel不会更新。 我想设计模式,我可以访问excel。 任何人帮助我设计一个我不会遇到问题的共同模式。 我想要这样的东西,但是我们无法使用它来访问excel。 提前致谢! 我在实用程序类中有这个方法 static ResultSet getExcelData(String filePath,String sqlQuery){ ResultSet rs=null; try{ conn = DriverManager.getConnection(“jdbc:odbc:Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=”+filePath+”;READONLY=false”); stmt= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); rs=stmt.executeQuery( sqlQuery ); }catch (Exception e) { e.printStackTrace(); return null; // TODO: handle exception }finally{ } return rs; } 而我这样称呼它 ResultSet rs=JdbcUtil.getExcelData(“D:\\AB_demo\\AB_demo\\test.xls”, “Select max(int(ID)) from [MAIN$] where HEADER_IND […]