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…
Reference in new issue