天天看点

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("法外狂徒张三");
           

此时我们可以举一反三,可拓展性也还是挺强的,只要选对模板就行了,其实也不是很难,

好了这期都到这里了,有什么不懂的还请留言

继续阅读