如上图所示,我们想读取Excel表格中的数据,并将其封装进实体类中,用poi是很容易完成操作的。但是被合并的单元格的值我们要怎么处理呢?经试验发现,被合并的单元格并不是每一行都存在值,而是只有被合并的第一行单元格中有数据。我们的解决思路是先获取整个Excel表格中被合并的单元格的栏位。在读取单元格的同时遍历被合并过得单元格,获取被合并单元格的四个坐标,将其与当前单元格坐标进行比较。若当前单元格包含在合并单元格内,则获取左上角(及有值的单元格数据),并存入bean中。以下是代码:
实体类:
package bean;
public class excelDto {
//保全项目序号
private String projectNum;
//保全项目名称
private String projectName;
//场景编号
private String sceneNum;
//测试场景
private String testScene;
//测试类
private String testClass;
//测试参数VData
private String testParameterVData;
//测试参数Operate
private String testOperate;
//保单号
private String policyNo;
//预期金额结果
private String sumResult;
//预期结果取数逻辑
private String result;
public excelDto() {
super();
// TODO Auto-generated constructor stub
}
public excelDto(String projectNum, String projectName, String sceneNum,
String testScene, String testClass, String testParameterVData,
String testOperate, String policyNo, String sumResult, String result) {
super();
this.projectNum = projectNum;
this.projectName = projectName;
this.sceneNum = sceneNum;
this.testScene = testScene;
this.testClass = testClass;
this.testParameterVData = testParameterVData;
this.testOperate = testOperate;
this.policyNo = policyNo;
this.sumResult = sumResult;
this.result = result;
}
public String getProjectNum() {
return projectNum;
}
public void setProjectNum(String projectNum) {
this.projectNum = projectNum;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getSceneNum() {
return sceneNum;
}
public void setSceneNum(String sceneNum) {
this.sceneNum = sceneNum;
}
public String getTestScene() {
return test