由于要批量生成Excel,并且模板已经给定。所以尝试用POI来操作一下。由于自己用的Office版本大于2007,所以在操作的时候遇到各种坑,特此记录一下~~~
注意点
1、由于POI对于Office2003和2007之后的版本对应的jar包不一样,操作的类也不一样,所以在操作之前一定要准确找到不同版本的Excel对应的jar包。
2、编译时不报错不代表运行不报错,很多操作都是POI在操作Excel时出现问题的,所以除了添加代码中需要Import类所在的jar包之外,必须要加入额外的jar包。
操作2007以上需要的jar包
这些jar文件都不需要自己单独下载,只要去Apache下载 poi-bin-3.16-20170419.zip
就有了全部的资料。
示例代码
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class POIExcel {
public static void main(String[] args) throws IOException, InvalidFormatException {
// 获取Excel模板文件
File file = new File("D:\\座位分布图模板.xlsx");
// 读取Excel模板
XSSFWorkbook wb = new XSSFWorkbook(file);
// 读取了模板内sheet的内容
XSSFSheet sheet = wb.getSheetAt(0);
// 在相应的单元格进行(读取)赋值 行列分别从0开始
XSSFCell cell = sheet.getRow(14).getCell(8);
cell.setCellValue("张三");
// 修改模板内容导出新模板
FileOutputStream out = new FileOutputStream("D:/座位分布图.xlsx");
// 关闭相应的流
wb.write(out);
out.close();
wb.close();
}
}