ADD file via upload

杜韦注释
p2x9nfpei 4 months ago
parent ddde76e4ed
commit 2e6a7d3218

@ -0,0 +1,62 @@
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<List<String>> poiImport(String url) throws Exception {
List<List<String>> 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<String> 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>> 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<String> 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<List<String>> lists = PoiUtil.poiImport("C:/Users/Administrator/Desktop/工作1.xls"); // 测试导入
PoiUtil.poiExport(lists, "C:/Users/Administrator/Desktop/工作1.xls"); // 测试导出
} catch (Exception e) {
e.printStackTrace(); // 打印异常信息
}
}
}
Loading…
Cancel
Save