Tag: apache poi

如何使用apache poi删除一行

我试图删除第三行 这是我根据rgettman,Leo,zibi的评论编写的。 谢谢。 public class MainTest { public static void main(String[] args) throws IOException { FileInputStream file = new FileInputStream(new File(“test.xlsx”) ); XSSFWorkbook wb = new XSSFWorkbook(file); XSSFSheet sheet = wb.getSheetAt(0); sheet.removeRow(sheet.getRow(3)); // sheet.shiftRows(3, 3, -1); File outWB = new File(“testResult.xlsx”); OutputStream out = new FileOutputStream(outWB); wb.write(out); out.flush(); out.close(); System.exit(0); } } 但是这会删除一行中的值,但不会删除该行

poi错误的日期公式值计算

我有以下代码 public boolean processCell(boolean hasData, StringBuffer rowData, Cell cell) { switch (cell.getCellType()) { case Cell.CELL_TYPE_FORMULA: { try { this.evaluator.clearAllCachedResultValues(); switch (this.evaluator.evaluateFormulaCell(cell)) { case XSSFCell.CELL_TYPE_NUMERIC: { if (DateUtil.isCellDateFormatted(cell)) { logger.warn(cell.getCellFormula()); rowData.append(dateFormat.format(cell.getDateCellValue())); hasData = true; } else { rowData.append(numberFormat.format(cell.getNumericCellValue())); hasData = true; } break; } case XSSFCell.CELL_TYPE_STRING: { String stringVal = cell.getStringCellValue().trim().replaceAll(“\n”, “”); if (stringVal.trim().equalsIgnoreCase(“Total MoU/active customer”)) […]

如何在java中进行excel的单元迭代

我有一个2行5列excel。 现在我手动输入代码以从第1行获取值。 我该如何迭代这个过程? 下面是excel第一行的代码。 从第2行开始,我不知道该怎么做……我想迭代一行。 Workbook workbook = Workbook.getWorkbook(new File( “\\C:\\users\\a-4935\\Desktop\\DataPool_CA.xls”)); Sheet sheet = workbook.getSheet(“Sheet1”); System.out.println(“Reached to Sheet”); Cell a = sheet.getCell(2,1); Cell b = sheet.getCell(3,1); Cell c = sheet.getCell(4,1); Cell d = sheet.getCell(5,1); Cell e = sheet.getCell(6,1); Cell f = sheet.getCell(7,1); Cell g = sheet.getCell(8,1); Cell h = sheet.getCell(9,1); Cell i = sheet.getCell(10,1); String […]

Apache POI。 复制表

我正在使用apache poi创建一个excel文档。 要在工作簿中创建新工作表,我编写下一个代码: Workbook wb = new HSSFWorkbook(); Sheet sh = wb.createSheet(); 此代码创建并向工作簿添加工作表。 但是我想先创建工作表然后将其添加到工作簿中。 Smth是这样的: Sheet sh = new HSSFSheet(); wb.addSheet(sh); 我需要这样的东西,因为我想将数据从一张工作簿的一张复制到另一张另一张工作簿(工作簿界面有方法Sheet cloneSheet(int) )。 但是,Workbook界面没有像addSheet(Sheet sh)这样的方法。 另外HSSFWorkbook是最终类,所以我不能扩展它来实现add方法我该怎么做?

如何处理excel文件中的空白单元格java

我正在制作一个程序,我从excel文件中读取数据并将它们存储在表中。 我使用Apache POI制作了程序并且工作正常。 但是当文件中有空白单元格时 我有一些问题。 程序跳过空白并读取下一个数据。 任何人都可以帮助我如何做到这一点? 我知道这个问题有几个post,但我没有找到对我有用的东西。 从excel文件中读取数据的代码如下。 如您所见,我有3种类型的数据。 我将如何为BLANK CELL提供选项? // Create an ArrayList to store the data read from excel sheet. List sheetData = new ArrayList(); FileInputStream fis = null; try { // Create a FileInputStream that will be use to read the // excel file. fis = new FileInputStream(strfullPath); // Create […]

使用Apache POI将doc转换为pdf

我正在尝试使用Apache POI将doc转换为pdf,但生成的pdf文档只包含文本,它没有像图像,表格对齐等任何格式。 如何将doc转换为pdf,并具有表格,图像,对齐等所有格式? 这是我的代码: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.hwpf.usermodel.Range; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class demo { public static void main(String[] args) { POIFSFileSystem fs = null; Document document = new Document(); try { System.out.println(“Starting the test”); fs = new […]

Apache POI Streaming(SXSSF)用于阅读

我需要读取大型excel文件并将其数据导入我的应用程序。 由于POI需要大量的堆来工作,经常抛出OutOfMemory错误,我发现有一个Streaming API以串行方式处理excel数据(而不是将文件完全加载到内存中) 我创建了一个xlsx工作簿,只有一个工作表,并在单元格中输入了几个值,并提出以下代码来尝试读取它: public static void main(String[] args) throws Throwable { // keep 100 rows in memory, exceeding rows will be flushed to disk SXSSFWorkbook wb = new SXSSFWorkbook(new XSSFWorkbook(new FileInputStream(“C:\\test\\tst.xlsx”))); SXSSFSheet sheet = (SXSSFSheet) wb.getSheetAt(0); Row row = sheet.getRow(0); //row is always null while(row.iterator().hasNext()){ //-> NullPointerException System.out.println(row.getCell(0).getStringCellValue()); } } 但是,尽管能够正确获取其工作表,但它总是带有空( null )行。 我已经研究并在互联网上找到了几个Streaming […]

Apache poi日期格式

嗨我正在阅读csv文件,并在01-01-2011获取日期,但我希望它在2011年1月1日格式,当我使用apache poi库编写.xlsx文件。 我的代码是 XSSFDataFormat df = workBook.createDataFormat(); cs.setDataFormat(df.getFormat(“dd-MMM-yy”)); 但它不适合我。 我在哪里做错了。

使用Apache POI API将xlsx转换为csv

我试图将.xlsx文件转换为.csv ,转换正在发生,但数据格式不正确。 请在下面找到代码,并建议更改代码。 在这里,我试图读取一个.xlsx文件并将其写入csv文件,即将xlsx转换为csv但是我没有以正确的格式获取.csv文件所有数据都显示在一个单独但它必须在Excel中显示为行。 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Iterator; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class XlsxtoCSV { static void xlsx(File inputFile, File outputFile) { // For storing data into CSV files StringBuffer data = new StringBuffer(); try { FileOutputStream fos = new FileOutputStream(outputFile); // Get the workbook object […]

使用Apache POI HSSF,如何一次刷新所有公式单元格?

我使用Apache POI填充Excel文件的单元格,文档中有很多公式单元格。 但是,当我在Excel中打开文档时,它们的值不会刷新。 我的理解是我需要使用FormulaEvaluator来刷新公式单元格。 但是,有没有办法一次更新所有公式单元格? 它们有很多 ,虽然制作详尽的清单并不是不可能的,但它肯定不是我非常愿意做的事情。