Java Web之POI操作Excel2016模板

YungFan發表於2017-12-13

由於要批量生成Excel,並且模板已經給定。所以嘗試用POI來操作一下。由於自己用的Office版本大於2007,所以在操作的時候遇到各種坑,特此記錄一下~~~

注意點

1、由於POI對於Office2003和2007之後的版本對應的jar包不一樣,操作的類也不一樣,所以在操作之前一定要準確找到不同版本的Excel對應的jar包。
2、編譯時不報錯不代表執行不報錯,很多操作都是POI在操作Excel時出現問題的,所以除了新增程式碼中需要Import類所在的jar包之外,必須要加入額外的jar包。

操作2007以上需要的jar包

必須的jar包.jpg

這些jar檔案都不需要自己單獨下載,只要去Apache下載 poi-bin-3.16-20170419.zip 就有了全部的資料。

對應的jar包.png

示例程式碼

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();
	}
}
複製程式碼

相關文章