Java操作Excel:创建与读取详解

5星 · 超过95%的资源 需积分: 10 5 下载量 132 浏览量 更新于2024-09-21 收藏 4KB TXT 举报
"利用Java创建和读取Excel文档是Java开发中常见的需求,主要涉及Java处理Excel文件的库Apache POI。Apache POI是一个开源项目,允许开发者使用Java来创建、修改Microsoft Office格式的文件,包括Excel。在本文档中,我们将探讨如何使用Apache POI来创建一个新的Excel工作簿并写入数据,以及如何读取已有的Excel文档。 首先,要使用Apache POI,你需要在项目中引入相应的依赖。对于Java 2 SDK 1.4.0及更高版本,你可以通过Maven或Gradle将Apache POI添加到你的构建配置中。Apache POI的官方网站(http://jakarta.apache.org/poi/)提供了详细的API文档和示例代码,供开发者参考。 以下是一个简单的Java程序示例,演示如何创建一个Excel工作簿,并在其中写入一行数据: ```java import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFCell; import java.io.FileOutputStream; public class CreateXL { // 定义Excel文件的输出路径 public static String outputFile = "D:/JTest/gongye.xls"; public static void main(String[] argv) { try { // 创建一个新的Excel工作簿 HSSFWorkbook workbook = new HSSFWorkbook(); // 创建一个新的工作表,可以自定义工作表名称 HSSFSheet sheet = workbook.createSheet(); // 在第一行创建一个单元格 HSSFRow row = sheet.createRow((short) 0); // 在该单元格中创建一个字符串类型的值 HSSFCell cell = row.createCell((short) 0); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue("测试值"); // 将工作簿写入到指定的输出流,这里是一个文件输出流 FileOutputStream fOut = new FileOutputStream(outputFile); workbook.write(fOut); fOut.flush(); // 关闭输出流 fOut.close(); System.out.println("文件已创建成功!"); } catch (Exception e) { System.out.println("出现错误:" + e.getMessage()); } } } ``` 这段代码创建了一个新的Excel文件(gongye.xls),并在其中创建了一个名为“Sheet1”的工作表。在第一行第一列写入了字符串“测试值”。 要读取Excel文件,可以使用`HSSFWorkbook`的静态方法`WorkbookFactory.create()`,传入一个文件输入流。读取数据后,可以通过`HSSFSheet`、`HSSFRow`和`HSSFCell`对象访问和操作数据。例如,获取单元格的值: ```java import org.apache.poi.ss.usermodel.*; public class ReadXL { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("D:/JTest/gongye.xls"); Workbook workbook = WorkbookFactory.create(fis); Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表 Row row = sheet.getRow(0); // 获取第一行 Cell cell = row.getCell(0); // 获取第一列的单元格 if (cell != null) { String cellValue = cell.getStringCellValue(); System.out.println("读取到的值:" + cellValue); } workbook.close(); fis.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 通过这些基本操作,你可以实现更复杂的Excel处理功能,如遍历工作表、合并单元格、设置样式、公式计算等。记住,处理大型Excel文件时要注意性能优化,避免一次性加载整个文件到内存。Apache POI提供了流式处理模式(SXSSF)来处理大文件,以降低内存消耗。 Apache POI为Java开发者提供了一套强大的工具,使得在Java环境中创建和读取Excel文档变得简单易行。通过深入学习其API,你可以创建出满足各种业务需求的Excel处理应用。"