我用了POI读取excel单元格值和相应的批注,但显示出来的结果不对应,难道是循环出现问题,请问下哪个地方的问题private String readformula(Cell cell){
try{
return df.format(cell.getNumericCellValue());
}catch(Exception e){
return "";
}
} //读取有标注的单元格的字符串及相应标注
//@param filepath 文件路径
public void readDataFromExcel(String filepath){
String Strcell="";
String comment = "";
Sheet sheet=null;
try{
InputStream is = new FileInputStream(filepath);
//根据输入流创建Workbook对象
Workbook wb = WorkbookFactory.create(is);
//get到Sheet对象
int numsheet = wb.getNumberOfSheets();
for (int a = 0; a < numsheet; a++) { //循环表格
sheet = wb.getSheetAt(a);
//这个必须用接口
for (Row row : sheet) {
for (Cell cell : row) {
if (cell.getCellComment() != null ) {
Strcell = "";
comment = "";
//cell.getCellType是获得cell里面保存的值的type
//如Cell.CELL_TYPE_STRING
switch (cell.getCellType()) {
case Cell.CELL_TYPE_BOOLEAN: //得到Boolean对象的方法
//cell.getBooleanCellValue();
break;
case Cell.CELL_TYPE_FORMULA: //读取公式
Strcell = readformula(cell);
break;
case Cell.CELL_TYPE_STRING: //读取String
Strcell = cell.getRichStringCellValue().toString();
break;
}
celllist.add(Strcell);
comment = cell.getCellComment().getString().toString();
commentlist.add(comment);
addresslist.add(filepath);
System.out.println(Strcell+","+comment);
}
} } }
}
catch(Exception e){}
}
结果:
127.200,winse:
#年2009#月12#日31#编程@分
9.235,winse:
#年2009#月12#日31#编程@分
31.800,winse:
#年2010#月12#日31#编程@收入excel中是:
127.200
winse:
#年2009#月12#日31#编程@分
31.800
winse:
#年2009#月12#日31#编程@分
9.235
winse:
#年2010#月12#日31#编程@收入
try{
return df.format(cell.getNumericCellValue());
}catch(Exception e){
return "";
}
} //读取有标注的单元格的字符串及相应标注
//@param filepath 文件路径
public void readDataFromExcel(String filepath){
String Strcell="";
String comment = "";
Sheet sheet=null;
try{
InputStream is = new FileInputStream(filepath);
//根据输入流创建Workbook对象
Workbook wb = WorkbookFactory.create(is);
//get到Sheet对象
int numsheet = wb.getNumberOfSheets();
for (int a = 0; a < numsheet; a++) { //循环表格
sheet = wb.getSheetAt(a);
//这个必须用接口
for (Row row : sheet) {
for (Cell cell : row) {
if (cell.getCellComment() != null ) {
Strcell = "";
comment = "";
//cell.getCellType是获得cell里面保存的值的type
//如Cell.CELL_TYPE_STRING
switch (cell.getCellType()) {
case Cell.CELL_TYPE_BOOLEAN: //得到Boolean对象的方法
//cell.getBooleanCellValue();
break;
case Cell.CELL_TYPE_FORMULA: //读取公式
Strcell = readformula(cell);
break;
case Cell.CELL_TYPE_STRING: //读取String
Strcell = cell.getRichStringCellValue().toString();
break;
}
celllist.add(Strcell);
comment = cell.getCellComment().getString().toString();
commentlist.add(comment);
addresslist.add(filepath);
System.out.println(Strcell+","+comment);
}
} } }
}
catch(Exception e){}
}
结果:
127.200,winse:
#年2009#月12#日31#编程@分
9.235,winse:
#年2009#月12#日31#编程@分
31.800,winse:
#年2010#月12#日31#编程@收入excel中是:
127.200
winse:
#年2009#月12#日31#编程@分
31.800
winse:
#年2009#月12#日31#编程@分
9.235
winse:
#年2010#月12#日31#编程@收入
解决方案 »
- ext 数据修改问题
- 已知A类被打包在packageA中,B类被打包在PackageB中,且B类被声明为public,且有一个成员变量x被声明为protected控制方式。C类也位于
- spring 整合 hibernate中依赖注不进去出java.lang.NullPointerException
- Could not open Hibernate Session for transaction????
- addButton()和panel.add()什么区别
- 谁能帮我翻译这句话??? The environment can not be locked for single writer access.谢谢!!!
- 初学web service 遇到的axis配置问题 ?
- 如何解决webservice中“ClassCastException”的问题?
- 当鼠标按下时,如何得到当前当前光标位置(以像素为单位)?
- 能用javac编译但用java命令运行时报告Exception in thread "main" java.lang.NoClassDefFoundError: h
- 本人毕设想用ssh做个系统,做什么系统新颖些呢?
- 如何将sql脚本转化成JAVA结构
弱弱的问一下,cell.getCellComment() 返回的是什么?