POI 读取excel2007 数字获取问题

读取excel2003习惯用jxl.
[color=darkblue][size=medium] Workbook wb = null;
try {
//构造 Workbook(工作薄)对象
wb=Workbook.getWorkbook(file);
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

if(wb==null)
return null;

//获得了Workbook 对象之后,就可以通过它得到Sheet(工作表)对象了
Sheet[] sheet = wb.getSheets();

if(sheet!=null&&sheet.length>0){
//对每个工作表进行循环
for(int i=0;i<sheet.length;i++){
//得到当前工作表的行数
int rowNum = sheet[i].getRows(); [/size]

如果是xlsx的2007格式.
读取是,即使设定了当前列为纯文本格式,读取出来的数字居然还是float.
所以只能在程序中判断:
[size=medium] XSSFWorkbook xwb = new XSSFWorkbook("c:\\aaa.xlsx");
// 读取第一章表格内容
XSSFSheet sheet = xwb.getSheetAt(0);
// 定义 row、cell
XSSFRow row;
Cell cell;
// 循环输出表格中的内容
for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++) {
row = sheet.getRow(i);
for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++) {
// 通过 row.getCell(j).toString() 获取单元格内容,
cell = row.getCell(j);
String value="";
switch(cell.getCellType())
{
case Cell.CELL_TYPE_NUMERIC:
NumberFormat f=new DecimalFormat("############");
f.setMaximumFractionDigits(0);
value= f.format(cell.getNumericCellValue());
break;

case Cell.CELL_TYPE_STRING:
value=cell.getStringCellValue();
break;
}
System.out.print(value+ "\t");
}
System.out.println("");
} [/size][/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值