package com.utils; // 声明工具类所在包 import org.apache.commons.io.FileUtils; // 导入文件工具类 import org.apache.poi.hssf.usermodel.HSSFCell; // 导入HSSF单元格类 import org.apache.poi.hssf.usermodel.HSSFRow; // 导入HSSF行类 import org.apache.poi.hssf.usermodel.HSSFSheet; // 导入HSSF工作表类 import org.apache.poi.hssf.usermodel.HSSFWorkbook; // 导入HSSF工作簿类 import org.apache.poi.ss.usermodel.Cell; // 导入单元格接口 import java.io.File; // 导入文件类 import java.io.FileOutputStream; // 导入文件输出流类 import java.util.ArrayList; // 导入ArrayList类 import java.util.List; // 导入List接口 public class PoiUtil { // POI工具类 // Excel导入方法 public static List> poiImport(String url) throws Exception { List> list = new ArrayList<>(); // 创建结果列表 HSSFWorkbook workbook = new HSSFWorkbook(FileUtils.openInputStream(new File(url))); // 创建工作簿对象 HSSFSheet sheet = workbook.getSheetAt(0); // 获取第一个工作表 for (int i = 0; i < sheet.getLastRowNum()+1; i++) { // 遍历所有行 HSSFRow row = sheet.getRow(i); // 获取当前行 List rowlist = new ArrayList<>(); // 创建行数据列表 for (int j = 0; j < row.getLastCellNum(); j++) { // 遍历行中所有单元格 HSSFCell cell = row.getCell(j); // 获取当前单元格 cell.setCellType(Cell.CELL_TYPE_STRING); // 设置单元格类型为字符串 String value = cell.getStringCellValue(); // 获取单元格值 rowlist.add(value); // 将值添加到行数据列表 } list.add(rowlist); // 将行数据添加到结果列表 } return list; // 返回结果列表 } // Excel导出方法 public static void poiExport(List> list, String url) throws Exception { HSSFWorkbook workbook = new HSSFWorkbook(); // 创建工作簿对象 HSSFSheet sheet = workbook.createSheet(); // 创建工作表 for (int i = 0; i < list.size(); i++) { // 遍历所有行数据 HSSFRow row = sheet.createRow(i); // 创建行 List dataList = list.get(i); // 获取当前行数据 for (int j = 0; j < dataList.size(); j++) { // 遍历行中所有数据 HSSFCell cell = row.createCell(j); // 创建单元格 cell.setCellValue(dataList.get(j)); // 设置单元格值 } } FileOutputStream stream = FileUtils.openOutputStream(new File(url)); // 创建文件输出流 workbook.write(stream); // 写入工作簿数据 stream.close(); // 关闭输出流 } // 主方法(测试用) public static void main(String[] args) { try { List> lists = PoiUtil.poiImport("C:/Users/Administrator/Desktop/工作1.xls"); // 测试导入 PoiUtil.poiExport(lists, "C:/Users/Administrator/Desktop/工作1.xls"); // 测试导出 } catch (Exception e) { e.printStackTrace(); // 打印异常信息 } } }