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

发布于 2021-11-22 21:21:44 字数 1882 浏览 735 评论 8

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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

疾风者 2021-11-24 02:24:29

你这问题问的太笼统了。根本就让别人看的一头雾水。报错,报什么错。最起码把报错代码贴出来。

秉烛思 2021-11-24 02:24:23

你这问题问的太笼统了。根本就让别人看的一头雾水。报错,报什么错。最起码把报错代码贴出来。

嘦怹 2021-11-24 02:24:16

那不用说了,用的就是poi。。还没解决,解析不了

温柔少女心 2021-11-24 02:24:04

回复
那你这个问题也没有必要问啊,报什么错都不贴出来是让我们大家猜你是出了什么错吗。

静谧 2021-11-24 02:22:36

我可以告诉你方案就是POI吗。

少女净妖师 2021-11-24 01:10:52

贴下报错和代码啊。。。

晚风撩人 2021-11-23 08:17:06

解析了都是报错 又不说是什么错谁知道你是什么问题啊

猫烠⑼条掵仅有一顆心 2021-11-22 22:51:23

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

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;
						
						}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文