sheet.getCell(3, 3);没有getCell方法
时间: 2024-03-16 15:43:37 浏览: 157
非常抱歉,我的回答有误。EasyExcel中确实没有getCell方法可以获取单元格对象,正确的获取单元格对象的方式是通过读取Excel文件中的数据来获取。下面是一个示例代码,演示如何读取Excel文件中的数据,并获取指定单元格对象:
```java
// 读取Excel文件中的数据
List<List<String>> dataList = EasyExcel.read(fileName).sheet(sheetIndex).headRow(headRowIndex).doReadSync();
// 获取指定单元格坐标
int row = 3; // 第4行
int col = 3; // 第4列
// 获取单元格对象
String cellValue = dataList.get(row - 1).get(col - 1);
```
在这个示例中,我们先使用EasyExcel读取Excel文件中的数据,并将其存储在一个二维列表中。然后,通过指定行和列的索引,获取对应单元格的值。注意,EasyExcel中的行和列都是从1开始计数的,而Java中的列表和数组索引都是从0开始计数的,因此在获取单元格对象之前需要将行和列的索引减1。
相关问题
List<String> biaotou=new ArrayList<>(); List<String> contentlist1=new ArrayList<>(); List<List<String>> contentlisrt2=new ArrayList<>(); for (int i=0;i<sheet.getRows();i++) {//行数 for (int x = 0; x < sheet.getColumns(); x++) {//列数 //获取第一列的第i行信息sheet.getCell(列,行),下标从0开始 if (i==0){ String content1 = sheet.getCell(x, i).getContents(); biaotou.add(content1); }else { String content2 = sheet.getCell(x, i).getContents(); contentlist1.add(content2); } } contentlisrt2.add(contentlist1); contentlist1.clear(); } 如何contentlisrt2 不为空
如果你想要确保`contentlisrt2`不为空,可以在添加`contentlist1`到`contentlisrt2`之前,先判断`contentlist1`是否为空。如果`contentlist1`不为空,再将其添加到`contentlisrt2`中。以下是修改后的代码示例:
```java
List<String> biaotou = new ArrayList<>();
List<String> contentlist1 = new ArrayList<>();
List<List<String>> contentlisrt2 = new ArrayList<>();
for (int i = 0; i < sheet.getRows(); i++) { // 行数
for (int x = 0; x < sheet.getColumns(); x++) { // 列数
// 获取第一列的第i行信息sheet.getCell(列,行),下标从0开始
if (i == 0) {
String content1 = sheet.getCell(x, i).getContents();
biaotou.add(content1);
} else {
String content2 = sheet.getCell(x, i).getContents();
contentlist1.add(content2);
}
}
if (!contentlist1.isEmpty()) {
contentlisrt2.add(contentlist1);
}
contentlist1.clear();
}
```
这样,只有当`contentlist1`不为空时,才会将其添加到`contentlisrt2`中。
try { score = (int)sheet.getRow(i).getCell(j++).getNumericCellValue(); //获取double类型 }catch (IllegalStateException e){ j--; score = (int)Double.parseDouble(sheet.getRow(i).getCell(j++).toString()); }这段代码怎样执行的·
这段代码是一个异常处理的逻辑。首先,它尝试从 Excel 表格中的第 `i` 行、第 `j` 列(列索引从 0 开始)获取一个数值类型的单元格值,通过 `getNumericCellValue()` 方法返回一个 double 类型的值。
如果获取单元格值的过程中发生了 `IllegalStateException` 异常,说明该单元格的数据类型不是数值类型,而是其他类型(如字符串类型)。在这种情况下,代码将执行 `catch` 块中的逻辑。
`j--` 是为了回退到之前的列索引,因为在 `try` 块中的 `j++` 已经自增过了,需要回退到之前的列索引。
然后,使用 `Double.parseDouble()` 方法将获取到的单元格值转换为字符串类型,并再次将其转换为整数类型,赋值给变量 `score`。
这段代码的目的是在尝试获取数值类型的单元格值时,如果发生异常,则将其作为字符串类型处理,并将其转换为整数类型。这样可以处理 Excel 表格中可能存在的数据类型不一致的情况。
阅读全文