JSP通过poi读取Excel把取到的值插入mysql,一直都解析不了。。。解析了都是报错:java.lang.IllegalStateException: Cannot get a text value from a numeric cell
代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.io.*" errorPage="" %>
<%@ page import="java.io.*,org.apache.poi.poifs.filesystem.POIFSFileSystem,org.apache.poi.hssf.record.*,org.apache.poi.hssf.model.*,org.apache.poi.hssf.usermodel.*,org.apache.poi.hssf.util.*" %>
<%request.setCharacterEncoding("gb2312");%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>用poi.jar来读取excel2003</title>
</head>
<body bgcolor="#F2F8FF">
<%
try{
String file = application.getRealPath("/") + "upload\\demo.xls";
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file));
HSSFWorkbook xwb = new HSSFWorkbook(fs);
//读取第一个sheet
HSSFSheet sheet = xwb.getSheetAt(0);
//定义 row、cell
HSSFRow row;
HSSFCell cell;
String output;
int rowNum;
int cellNum;
//循环输出表格中的内容
output = "";
rowNum = sheet.getPhysicalNumberOfRows();
for (int i = 0; i < rowNum; i++)
{
row = sheet.getRow(i);
cellNum = row.getPhysicalNumberOfCells();
for (int j = 0; j < cellNum; j++)
{
cell = row.getCell(j);
output = output + cell.getStringCellValue() + " ";
}
output = output + "<br />";
}
out.print(output);
}catch(Exception e){
out.print(e.toString());
}
%>
</body>
</html>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
额,你需要根据获取单元格的类型,再取值。参考代码如下:
HSSFCell oneCell = oneRow.getCell(cellNumber); //获取单元格对象
switch (oneCell.getCellType()) { //获取单元格类型并判断
case HSSFCell.CELL_TYPE_STRING:
System.out.println(oneCell.getStringCellValue());
break;
case HSSFCell.CELL_TYPE_FORMULA:
System.out.println(oneCell.getCellFormula());
break;
case HSSFCell.CELL_TYPE_NUMERIC:
System.out.println(oneCell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_ERROR:
System.out.println("Error!");
break;
}
######
解析了都是报错 又不说是什么错谁知道你是什么问题啊
贴下报错和代码啊。。。
######嗯,贴了,求解决######我可以告诉你方案就是POI吗。
######回复 @panfanglin : 那你这个问题也没有必要问啊,报什么错都不贴出来是让我们大家猜你是出了什么错吗。######那不用说了,用的就是poi。。还没解决,解析不了######你这问题问的太笼统了。根本就让别人看的一头雾水。报错,报什么错。最起码把报错代码贴出来。######