天天看點

Java使用自定義Excel模闆填充資料

Java使用自定義Excel模闆填充資料

上期我們說到使用POI簡單的制作一個Excel,這裡我們教林外一種方法,就是把Excel寫好定為模闆,直接填充資料.

老樣子還是要添加POM依賴

<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>
           

上代碼!

這裡有梁總方式讀取我們的模闆

将檔案放在伺服器上 2. 将問價放在項目裡

這裡我就示範放在項目裡, 在項目根目錄建立一個檔案夾,自定義名字,别太離譜看得懂就行

Java使用自定義Excel模闆填充資料

假設下圖是我們寫好的模闆,此時我們要把姓名寫入為"

法外狂徒張三

"

Java使用自定義Excel模闆填充資料
// 讀取模闆的絕對路徑
File file = new File("excelTemplate/身份職務證明模闆.xlsx");
FileInputStream fs = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(fs);
// 擷取Sheet1第一頁
XSSFSheet sheet = wb.getSheet("Sheet1");
------------------------此處為拓展可忽略------------------------
//如果你要檢視哪些單元格合并的話可以如下代碼

for (int i = 0; i < sheet.getMergedRegions().size(); i++) {
CellRangeAddress region = sheet.getMergedRegion(i); //
int colIndex = region.getFirstColumn(); // 合并區域首列位置
int rowNum = region.getFirstRow(); // 合并區域首行位置
System.out.println("合并區域,行 : " + rowNum + ", 列 : " + colIndex);
System.out.println("第[" + i + "]個合并區域:" + sheet.getRow(rowNum).getCell(colIndex).getStringCellValue());
}

// 以上代碼就可檢視本頁面哪些合并單元格,友善進行填充字段操作
--------------------------------------------------------------

// 接下來操作如何插入字段

// 1. 首先我們需要選擇需要修改的行
// 從何圖上可以看到我們需要修改的行為第四行,但是是從0開始是以行數為3

XSSFRow row1 = sheet.getRow(3); // 擷取行數4

// 2. 擷取列,如果需要填充的列為合并單元格,那麼取列的第一個下标
XSSFCell cell = row1.getCell(2);
// 3. 插入需要填充的字段
cell.setCellValue("法外狂徒張三");
           

此時我們可以舉一反三,可拓展性也還是挺強的,隻要選對模闆就行了,其實也不是很難,

好了這期都到這裡了,有什麼不懂的還請留言

繼續閱讀