JSP通过poi读取Excel把取到的值插入mysql:报错 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

JSP通过poi读取Excel把取到的值插入mysql:报错

2020-06-06 16:59:32 301 1

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>

取消 提交回答
全部回答(1)
  • kun坤
    2020-06-06 16:59:38

    额,你需要根据获取单元格的类型,再取值。参考代码如下:

    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。。还没解决,解析不了######你这问题问的太笼统了。根本就让别人看的一头雾水。报错,报什么错。最起码把报错代码贴出来。######

    引用来自“backtract”的答案

    你这问题问的太笼统了。根本就让别人看的一头雾水。报错,报什么错。最起码把报错代码贴出来。
    赞同,先贴报错信息
    0 0
相关问答

20

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 1270864浏览量 回答数 20

170

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 233738浏览量 回答数 170

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 159989浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 341320浏览量 回答数 8

119

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 302541浏览量 回答数 119

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 148936浏览量 回答数 22

24

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 660270浏览量 回答数 24

39

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 263602浏览量 回答数 39

251

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 310259浏览量 回答数 251

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 205741浏览量 回答数 2
+关注
0
文章
13401
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载