通过编程从模板创buildExcel报告

我正在使用“Apache POI”来生成Excel报告。 我有一个精心devise的Excel模板。 我想通过将数据填充到模板的预定义位置来创build报告。 也就是说,我不想关心报告的格式。 那可能吗? 你能给我一些指导吗?

我得到了我的答案。 我可以使用Microsoft Excel中的“单元命名”实用程序,然后使用以下代码find单元格并执行一些操作。

CellReference[] crefs = this.getCellsByName(wb, cName); // Locate the cell position Sheet sheet = wb.getSheet(crefs[0].getSheetName()); Row row = sheet.getRow(crefs[0].getRow()); Cell cell = row.getCell(crefs[0].getCol()); // Write in data cell.setCellValue(cellRegion.getContent()); 

“cName”是在Microsoft Excel中预定义的单元的名称。

你可以看看jXLS,我想这就是你要找的。

它以Excel作为模板,您可以编写一个Java应用程序来填充数据:

http://jxls.sourceforge.net/

您可以像加载其他XLS一样加载模板文件。 然后对特定单元格进行更改并将其写入另一个文件。

一些示例代码:

加载文件

 InputStream inputStream = new FileInputStream ("D:\\book_original.xls"); POIFSFileSystem fileSystem = new POIFSFileSystem (inputStream); HSSFWorkbook workBook = new HSSFWorkbook (fileSystem); 

做东西

 HSSFSheet sheet1 = workBook.getSheetAt (0); Iterator<Row> rows = sheet1.rowIterator (); while (rows.hasNext ()) { Row row = rows.next (); // do stuff if (row.getCell(0).getCellType() == HSSFCell.CELL_TYPE_NUMERIC) System.out.println ("Row No.: " + row.getRowNum ()+ " " + row.getCell(0).getNumericCellValue()); HSSFCell cell = row.createCell(0); cell.setCellValue("100"); } 

将输出写入文件

  FileOutputStream fileOut1 = new FileOutputStream("D:\\book_modified.xls"); workBook.write(fileOut1); fileOut1.close(); 

我在这个链接http://jsimreport.com/使用simreport库&#x3002; 我发现做一个excel报告非常简单,快捷。