Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能。
所需jar:poi-3.10.1-20140818.jar
1、创建Excel表
@Test public void testCreateWorkbook(){ //创建一个Excel表 Workbook wb = new HSSFWorkbook(); File file = new File("D:"+File.separator+"first.xls"); FileOutputStream out = null; try { out = new FileOutputStream(file); wb.write(out); out.flush(); out.close(); System.out.println("success"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
2、创建工作区间
@Test public void testCreateSheet(){ Workbook wb = new HSSFWorkbook(); //创建一个工作区间 Sheet sheet = wb.createSheet("one sheet"); File file = new File("D:"+File.separator+"first.xls"); FileOutputStream out = null; try { out = new FileOutputStream(file); wb.write(out); out.flush(); out.close(); System.out.println("success"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
3、创建单元格
@Test public void testCreateCells(){ Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("one sheet"); CreationHelper createHelper = wb.getCreationHelper(); //创建第一行 Row row = sheet.createRow(0); //创建单元格 Cell cell = row.createCell(0); cell.setCellValue(1); //或者一下方式创建单元格 row.createCell(1).setCellValue(1.2); row.createCell(2).setCellValue(createHelper.createRichTextString("This is a String")); row.createCell(3).setCellValue(true); File file = new File("D:"+File.separator+"first.xls"); FileOutputStream out = null; try { out = new FileOutputStream(file); wb.write(out); out.flush(); out.close(); System.out.println("success"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
4、创建其它格式单元格
@Test public void testCreateOtherCells(){ Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("one sheet"); //创建第一行 Row row = sheet.createRow(0); //创建单元格 row.createCell(0).setCellValue(1.1); row.createCell(1).setCellValue(new Date()); row.createCell(2).setCellValue(Calendar.getInstance()); row.createCell(3).setCellValue("a string"); row.createCell(4).setCellValue(true); row.createCell(5).setCellType(Cell.CELL_TYPE_ERROR); File file = new File("D:"+File.separator+"first.xls"); FileOutputStream out = null; try { out = new FileOutputStream(file); wb.write(out); out.flush(); out.close(); System.out.println("success"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
5、单元格对齐方式
@Test public void testAlignmentOptions(){ Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); //创建第一行 Row row = sheet.createRow(2); row.setHeightInPoints(30); //创建单元格 TestUtil.createCell(wb, row, 0, CellStyle.ALIGN_CENTER, CellStyle.VERTICAL_BOTTOM); TestUtil.createCell(wb, row, 1, CellStyle.ALIGN_CENTER_SELECTION, CellStyle.VERTICAL_BOTTOM); TestUtil.createCell(wb, row, 2, CellStyle.ALIGN_FILL, CellStyle.VERTICAL_CENTER); TestUtil.createCell(wb, row, 3, CellStyle.ALIGN_GENERAL, CellStyle.VERTICAL_CENTER); TestUtil.createCell(wb, row, 4, CellStyle.ALIGN_JUSTIFY, CellStyle.VERTICAL_JUSTIFY); TestUtil.createCell(wb, row, 5, CellStyle.ALIGN_LEFT, CellStyle.VERTICAL_TOP); TestUtil.createCell(wb, row, 6, CellStyle.ALIGN_RIGHT, CellStyle.VERTICAL_TOP); File file = new File("D:"+File.separator+"first.xls"); FileOutputStream out = null; try { out = new FileOutputStream(file); wb.write(out); out.flush(); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void createCell(Workbook wb, Row row, int column, short halign, short valign) { Cell cell = row.createCell(column); cell.setCellValue("Align It"); CellStyle cellStyle = wb.createCellStyle(); cellStyle.setAlignment(halign); cellStyle.setVerticalAlignment(valign); cell.setCellStyle(cellStyle); }
6、单元格加粗
@Test public void testBorder(){ Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); //创建行 Row row = sheet.createRow(1); //创建单元格 Cell cell = row.createCell(1); cell.setCellValue(4); //创建单元格样式 CellStyle style = wb.createCellStyle(); style.setBorderBottom(CellStyle.BORDER_THIN); //边框类型 style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); //边框颜色 style.setBorderLeft(CellStyle.BORDER_THIN); style.setLeftBorderColor(IndexedColors.GREEN.getIndex()); style.setBorderRight(CellStyle.BORDER_THIN); style.setRightBorderColor(IndexedColors.BLUE.getIndex()); style.setBorderTop(CellStyle.BORDER_MEDIUM_DASHED); style.setTopBorderColor(IndexedColors.BLACK.getIndex()); cell.setCellStyle(style); File file = new File("D:"+File.separator+"first.xls"); FileOutputStream out = null; try { out = new FileOutputStream(file); wb.write(out); out.flush(); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
7、单元格加颜色
@Test public void testColor(){ Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); //创建行 Row row = sheet.createRow(1); //创建字体样式 Font font = wb.createFont(); font.setFontName("宋体"); //字体类型 font.setFontHeightInPoints((short)12); //字体大小 font.setItalic(true); //倾斜 font.setBoldweight(Font.BOLDWEIGHT_BOLD); //加粗 font.setColor(HSSFColor.RED.index); //红色 //创建单元格样式 CellStyle style = wb.createCellStyle(); style.setFillForegroundColor(IndexedColors.YELLOW.getIndex()); //背景颜色 style.setFillPattern(CellStyle.SOLID_FOREGROUND); //全部填充 (填充类型) style.setFont(font); //关联字体 //创建单元格 Cell cell = row.createCell(1); cell.setCellValue("呵呵"); cell.setCellStyle(style); File file = new File("D:"+File.separator+"first.xls"); FileOutputStream out = null; try { out = new FileOutputStream(file); wb.write(out); out.flush(); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
8、合并单元格
@Test public void testMergingCell(){ Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); //创建行 Row row = sheet.createRow(1); Cell cell = row.createCell(1); cell.setCellValue("hello"); //合并单元格(开始行数,结束行数,开始列数,结束列数)注意:都是从0开始的 sheet.addMergedRegion(new CellRangeAddress(1,1,1,2)); File file = new File("D:"+File.separator+"first.xls"); FileOutputStream out = null; try { out = new FileOutputStream(file); wb.write(out); out.flush(); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
9、迭代读入Excel中的单元格内容(解决int与String的转换问题)
@Test public void testIterateRowsAndCells(){ Workbook wb = null; try { wb = new HSSFWorkbook(new FileInputStream(new File("F:\\test.xls"))); Sheet sheet = wb.getSheetAt(0); for (Row row : sheet) { for (Cell cell : row) { CellReference cellRef = new CellReference(row.getRowNum(), cell.getColumnIndex()); System.out.print(cellRef.formatAsString()); System.out.print(" - "); switch (cell.getCellType()) { case Cell.CELL_TYPE_STRING: System.out.println(cell.getRichStringCellValue().getString()); break; case Cell.CELL_TYPE_NUMERIC: if (DateUtil.isCellDateFormatted(cell)) { System.out.println(cell.getDateCellValue()); } else { cell.setCellType(Cell.CELL_TYPE_STRING); String temp = cell.getStringCellValue(); String str = ""; if (temp.indexOf(".") > -1) { str = String.valueOf(new Double(temp)) .trim(); } else { str = temp.trim(); } System.out.println(str); } break; case Cell.CELL_TYPE_BOOLEAN: System.out.println(cell.getBooleanCellValue()); break; case Cell.CELL_TYPE_FORMULA: System.out.println(cell.getCellFormula()); break; case Cell.CELL_TYPE_BLANK: System.out.println("\"\""); break; default: System.out.println("未知类型"); } } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
相关推荐
为了使用 POI 操作 Excel 文件,首先需要准备以下环境: 1. **JDK 版本**:至少需要 JDK 1.4 或更高版本。 2. **POI 库**:下载 POI 库,可以从 Apache 官方网站获取:...
总之,"spring3.2.5 MVC Poi3.9操作excel批量导入"是一个涵盖了Web开发、数据处理和文件操作的综合技术主题。结合Spring MVC的灵活性、Apache POI的强大文件处理能力以及Maven的项目管理,开发者可以构建出强大且...
### 应用POI组件操作Excel #### 一、POI组件简介 POI组件作为Apache项目的开源子项目之一,其主要目标在于提供一套API,使得开发者能够利用Java语言来读取与写入Microsoft Office文件格式的数据。尤其针对Excel...
Java通过Apache POI库操作Excel是Java开发人员处理Microsoft Office文档的一种常见方法,特别是当需要在应用程序中生成、读取或修改Excel数据时。Apache POI是一个开源项目,提供了丰富的API,使得Java开发者能够...
在Java编程领域,...总的来说,通过Apache POI库,开发者可以方便地对Excel文件进行各种操作,包括添加水印,从而提高文档的安全性和专业性。这个过程涉及到Java图形处理、Excel文件结构理解和POI API的熟练运用。
在“poi操作excel表格导入和导出”这个主题中,我们将深入探讨如何利用Apache POI进行Excel数据的处理,包括导入和导出。 一、Apache POI简介 Apache POI是一个开源项目,它提供了API来处理Microsoft Office格式的...
"poi操作Excel文件jar包"指的是包含Apache POI库的Java归档(JAR)文件,可以集成到Java项目中以实现Excel文件的处理功能。 1. **Apache POI 简介** Apache POI 是Apache软件基金会的一个顶级项目,最初由Markus ...
下面将详细介绍如何使用Java POI来操作Excel以及相关的知识点。 1. **基本概念** - HSSF(Horrible Spreadsheet Format):这是POI库处理Excel 97-2003(.xls)格式的部分。HSSF提供了一套API,可以创建、修改和...
POI库不仅支持基本的文本和数字操作,还支持更高级的功能,如公式计算、样式设置和图表创建。 2. **创建Excel图表** 要生成Excel图表,我们需要先创建一个`XSSFWorkbook`对象,这代表了整个Excel工作簿。接着,创建...
总结,Apache POI提供了一套完整的API,使得在Java中操作Excel文件变得简单。通过循环读取数据和应用模板,我们可以快速生成大量定制化的Excel报告。在"poiDemo2"这个示例中,你可以找到具体实现这些步骤的代码,...
Java POI 的主要特点是可以在 Java 应用程序中读取、写入和操作 Office 文件。 2. Java POI 的组成 Java POI 由多个组件组成,每个组件负责处理不同的 Office 文件格式。以下是 Java POI 的主要组件: * POIFS ...
1. POI基本概念 Apache POI 提供了HSSF(Horrible Spreadsheet Format)用于读写旧版的.xls格式的Excel文件,而XSSF则用于处理.xlsx格式的新版Excel文件。这两个接口在API上几乎完全兼容,使得开发者可以方便地在...
以上只是Apache POI操作Excel的基本知识,实际使用中,可能还会涉及到更复杂的功能,如图表、数据验证、条件格式等。通过阅读博客文章“POI操作Excel常用方法总结”,你可以获得更深入的实践经验和技巧。
本篇将详细介绍Apache POI在Excel操作中的应用,包括基本概念、使用步骤、关键类和方法以及实际示例。 1. 基本概念 - HSSF (Horrible Spreadsheet Format):用于处理旧版的BIFF格式Excel文件(.xls)。 - XSSF ...
这就是使用Apache POI操作Excel 2007文件的基本流程。通过组合这些基本操作,你可以实现更复杂的功能,如合并单元格、插入图表、读写公式等。注意,由于版本3.8相对较旧,某些新功能可能未被支持,建议使用更新的...
根据提供的文件信息,可以看出文档主要阐述了如何使用Apache POI技术...需要具备良好的编程基础和对POI技术、JPA以及Spring Data JPA的理解和实践。在实际的开发中,还需要注意异常处理、事务管理以及性能优化等问题。
Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,包括Excel、Word和PowerPoint等。...通过理解和掌握POI的基本操作和高级特性,开发者可以轻松地集成Excel处理功能到自己的应用程序中。
通过Apache POI,我们可以轻松地使用Java编程语言创建和操作Excel文件,包括创建多个Sheet。这个过程涉及了Workbook、Sheet、Row和Cell的创建、设置数据、合并单元格以及最终的文件导出。在实际应用中,可以根据需求...