**:
最近需要使用POI操作Excel,有好多同一类型的sheet,需要复制操作,网上找了一下,居然都是逐行逐单元格操作的,我的天,这种操作实在有损我们程序员的英名,于是我就查了POI里的所有操作sheet的方法,终于找到了简洁的办法,话不多说,我们看代码:
新建一个Excel,并新建一个sheet,修改一下文件路径和sheet名称,就可以直接运行,大功告成
package com.example.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Test {
public static void main(String[] args) {
File file = new File("D:\\360MoveData\\Users\\Administrator\\Desktop\\测试表格.xlsx");
FileInputStream fis;
try {
fis = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sheet = wb.getSheet("test1");
String name = sheet.getSheetName();
System.out.println("name-------------->"+name);
XSSFRow row = sheet.getRow(0);
XSSFCell cell = row.getCell(0);
System.out.println("cell--------------->"+cell);
if(null == cell){
cell = row.createCell(0);
cell.setCellValue(100);
}
XSSFSheet sheet2 = wb.cloneSheet(0,"test2");
System.out.println("sheet2-------->"+sheet2.getSheetName());
XSSFRow row2 = sheet2.getRow(0);
XSSFCell cell2 = row2.getCell(2);
if(null == cell2){
cell2 = row2.createCell(2);
cell2.setCellValue("测试数据");
}
FileOutputStream fos = new FileOutputStream("D:\\360MoveData\\Users\\Administrator\\Desktop\\测试表格1.xlsx");
wb.write(fos);
fis.close();
fos.close();
wb.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("结束");
}
}