我创建了这段代码来使用 Apache POI 读取 excel 文件的内容。我使用 eclipse 作为编辑器,但是当我运行代码时,我在粗体行中遇到了问题。有什么问题?
excel的内容如下:
Emp ID Name Salary
1.0 john 2000000.0
2.0 dean 4200000.0
3.0 sam 2800000.0
4.0 cass 600000.0
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class ExcelRead {
public static void main(String[] args) throws Exception {
File excel = new File ("C:\\Users\\Efi\\Documents\\test.xls");
FileInputStream fis = new FileInputStream(excel);
HSSFWorkbook wb = new HSSFWorkbook(fis);
HSSFSheet ws = wb.getSheet("Input");
int rowNum = ws.getLastRowNum()+1;
int colNum = ws.getRow(0).getLastCellNum();
String[][] data = new String[rowNum][colNum];
for (int i=0; i<rowNum; i++){
HSSFRow row = ws.getRow(i);
for (int j=0; j<colNum; j++){
HSSFCell cell = row.getCell(j);
String value = cellToString(cell);
data[i][j] = value;
System.out.println("The value is" + value);
}
}
}
public static String cellToString (HSSFCell cell){
int type;
Object result;
type = cell.getCellType();
switch(type) {
case 0://numeric value in excel
result = cell.getNumericCellValue();
break;
case 1: //string value in excel
result = cell.getStringCellValue();
break;
case 2: //boolean value in excel
result = cell.getBooleanCellValue ();
break;
default:
***throw new RunTimeException("There are not support for this type of
cell");***
}
return result.toString();
}
}
有其他细胞类型 http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html除了您正在捕获的内容之外switch
陈述。您有以下案例0
(CELL_TYPE_NUMERIC
), 1
(CELL_TYPE_STRING
), and 2
, but 2
is CELL_TYPE_FORMULA
。以下是其他可能的值:
- 3:
CELL_TYPE_BLANK
- 4:
CELL_TYPE_BOOLEAN
- 5:
CELL_TYPE_ERROR
Use the Cell
switch 语句中的单元格类型常量而不是整数文字,并使用所有 6 个来捕获所有可能的情况。
正如@Vash 已经建议的那样,包括实际的单元格type
在你的RuntimeException
信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)