row.getCell(cellNum++);本是String,自动转为了double
时间: 2024-03-01 21:55:38 浏览: 25
这是因为Excel表格中的单元格可能包含数字或者文本。当你使用getCell方法获取单元格的时候,它会自动根据单元格内容的类型返回不同的数据类型。如果单元格内容是数字,它会返回double类型的数据,如果单元格内容是文本,它会返回String类型的数据。
如果你想要获取单元格的String类型的数据,可以使用以下代码:
```
Cell cell = row.getCell(cellNum++);
String cellValue = cell.getStringCellValue();
```
这样就可以保证获取到的始终是String类型的数据了。
相关问题
row.createCell 和 row.getCell 区别
`row.createCell` 和 `row.getCell` 都是 Apache POI 库中 HSSFRow 类的方法,用于创建或获取单元格对象。二者的区别在于:
- `row.createCell` 用于创建一个新的单元格对象,并将其添加到行中。如果该单元格已经存在,则将其覆盖。该方法返回一个 HSSFCell 对象,可以使用该对象设置单元格的值、样式等属性。
- `row.getCell` 用于获取行中指定列位置的单元格对象。如果该单元格不存在,则返回 null。该方法返回一个 HSSFCell 对象,可以使用该对象获取单元格的值、样式等属性。
下面是一个示例代码,演示了如何使用 `row.createCell` 和 `row.getCell` 方法:
```java
// 创建一个新的工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建一个新的工作表
HSSFSheet sheet = workbook.createSheet("Sheet1");
// 创建一个新的行
HSSFRow row = sheet.createRow(0);
// 创建一个新的单元格,并设置其值为 1
HSSFCell cell1 = row.createCell(0);
cell1.setCellValue(1);
// 获取第一行第一列的单元格,并输出其值
HSSFCell cell2 = row.getCell(0);
System.out.println(cell2.getNumericCellValue()); // 输出:1.0
```
row.getCell(professionColumn)
这是 Apache POI 中用于读取 Excel 文件中单元格数据的代码,其中 `row` 表示行对象,`getCell()` 是获取某一列的单元格对象的方法,而 `professionColumn` 是指定列的索引或名称,例如:
```java
Row row = sheet.getRow(0); // 获取第一行
Cell professionCell = row.getCell(2); // 获取第三列的单元格对象
```
上述代码中,`getRow()` 方法获取第一行的行对象,`getCell(2)` 方法获取第三列的单元格对象(因为 Excel 中的列从0开始计数)。如果你的 Excel 中有表头,那么 `professionColumn` 可以是表头的列名,例如:
```java
Row row = sheet.getRow(1); // 获取第二行
Cell professionCell = row.getCell("Profession"); // 获取"Profession"列的单元格对象
```
上述代码中,`getRow(1)` 方法获取第二行的行对象,`getCell("Profession")` 方法获取"Profession"列的单元格对象。注意,如果列名不存在,这个方法会返回 `null`。