Java操作Excel:读取、下载与生成示例

4星 · 超过85%的资源 需积分: 3 34 下载量 78 浏览量 更新于2024-12-31 收藏 8KB TXT 举报
"Java操作Excel的示例代码" 在Java编程中,与Excel文件交互是一项常见的任务,特别是在Web开发中。以下是一个简单的Java代码示例,用于读取、下载和生成Excel文件。这个示例使用了Apache POI库,这是一个流行的Java API,允许开发者创建、修改和显示Microsoft Office格式的文件,包括Excel。 首先,为了读取Excel文件,我们需要导入必要的库,如`org.apache.poi.hssf.usermodel.HSSFWorkbook`和`org.apache.poi.ss.usermodel`包下的其他类。这段代码中的`readExcel`方法接收一个路径参数,该路径指向要读取的Excel文件。 ```java public List<List<String>> readExcel(String path) { HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(path)); // 读取Excel文件 for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) { // 遍历所有工作表 if (null != workbook.getSheetAt(numSheets)) { HSSFSheet aSheet = workbook.getSheetAt(numSheets); // 获取当前工作表 for (int rowNumOfSheet = 0; rowNumOfSheet < aSheet.getLastRowNum(); rowNumOfSheet++) { // 遍历所有行 if (null != aSheet.getRow(rowNumOfSheet)) { // 检查行是否存在 HSSFRow aRow = aSheet.getRow(rowNumOfSheet); // 获取当前行 for (short cellNumOfRow = 0; cellNumOfRow < aRow.getLastCellNum(); cellNumOfRow++) { // 遍历所有单元格 String strCell = ""; // 初始化单元格内容 if (null != aRow.getCell(cellNumOfRow)) { // 检查单元格是否存在 HSSFCell aCell = aRow.getCell(cellNumOfRow); // 获取当前单元格 if (aCell.getCellType() == aCell.CELL_TYPE_NUMERIC) { // 如果是数值类型 strCell = String.valueOf(aCell.getNumericCellValue()); // 转换为字符串 int index = strCell.indexOf("."); // 检查小数点位置 } else { strCell = aCell.getStringCellValue(); // 如果是字符串类型 } List<String> list = new ArrayList<String>(); // 创建存储单元格数据的列表 list.add(strCell); // 将单元格数据添加到列表 } List<List<String>> listRow = new ArrayList<>(); // 创建存储行数据的列表 listRow.add(list); // 将当前行的数据添加到行列表 } } } } } return listRow; // 返回包含所有行数据的列表 } ``` 这段代码中,我们逐行逐列遍历Excel文件,根据单元格的类型处理其内容。如果单元格包含数值,我们将其转换为字符串;如果单元格包含文本,直接获取字符串值。然后,这些数据被组织成列表结构,以便于进一步处理或展示。 要下载或生成Excel文件,可以使用类似的逻辑,只是在写入数据时,你需要创建一个新的`HSSFWorkbook`对象,然后使用`createSheet`方法创建工作表,`createRow`方法创建行,最后使用`setCellValue`方法设置单元格的值。完成后,使用`FileOutputStream`将工作簿写入文件。 Java通过Apache POI库提供了强大的Excel操作能力,无论是读取现有数据还是创建新的Excel文件,都能轻松实现。在实际开发中,根据需求可以进行更复杂的格式设置和数据处理。