Jsp+poi+servlet导入excel到数据库表

音之美 2012-09-04 03:06:58
package zsl.csfn.excel;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import zsl.csfn.dao.InforMationDao;
import zsl.csfn.dao.impl.InforMationDaoImpl;
import zsl.csfn.entity.InforMation;

public class InfoExcel {


/**
* 批量导入excel数据
*/
//记录类的输出信息
static Log log=LogFactory.getLog(InfoExcel.class);
//获取Excel文档的路径
public static String filePath="../../excel";


public void getExcel() throws Exception{
try{
//取得上传的文件

//创建对Excel工作薄文件的引用
HSSFWorkbook wookbook=new HSSFWorkbook(new FileInputStream(filePath));
//建立新的sheet对象
HSSFSheet sheet = wookbook.getSheet("sheet1");
// 获取Excel的所有行
int rows = sheet.getPhysicalNumberOfRows();
// 遍历行
for (int i = 0; i < rows; i++) {
// 读取左上角单元格
HSSFRow row = sheet.getRow(i);
// 行不能为空
if (row != null) {
// 获取Excel文件中的所以列
int cells = row.getPhysicalNumberOfCells();
String value = "";
// 遍历列
for (int j = 0; j < cells; j++) {
// 获取列的值
HSSFCell cell = row.getCell(j);
if (cell != null) {
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_FORMULA:
break;
case HSSFCell.CELL_TYPE_NUMERIC:
value += cell.getNumericCellValue();
break;
case HSSFCell.CELL_TYPE_STRING:
value += cell.getStringCellValue() + ",";
break;
default:
value += "0";
break;
}
}
}
//将数据插入到mysql中
String[] val=value.split(",");
InforMation infor=new InforMation();
infor.setInfoName(val[0]);
infor.setInfoAdd(val[1]);
infor.setInfoTel(val[2]);
infor.setInfoFax(val[3]);
infor.setInfoEmail(val[4]);
infor.setInfoIntro(val[5]);
InforMationDao inforMation=new InforMationDaoImpl();
inforMation.saveInforMation(infor);

}
}
}catch(FileNotFoundException e){
e.printStackTrace();
}

}
}
以上代码可以实现绝对路径的excel表导入,现在我想在客户端上传,然后服务端自动将文件 数据导致数据库,在这里没思路了,望给我朋友指点一下.谢谢!
...全文
788 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanddyy_sse_ustc 2013-02-19
  • 打赏
  • 举报
回复
楼主可有这个实例,方便发一个给菜鸟来学习学习?邮箱:sanddyy@qq.com 谢谢。
音之美 2012-11-20
  • 打赏
  • 举报
回复
谢谢大家的意见,搞定了.
lynnlovemin 2012-11-18
  • 打赏
  • 举报
回复
用上传组件 像什么smartupload什么的 好像spring和struts也有提供上传组件的
by_name6 2012-11-17
  • 打赏
  • 举报
回复
你妹的在servlet里取路径能得到客户端的excel么
sencerity 2012-11-17
  • 打赏
  • 举报
回复
不能获取绝对路径的好 安全姓 以前ie6支持 现在firfox google ie8都不支持了
fulinkster 2012-09-04
  • 打赏
  • 举报
回复
LZ都自己想到了“在客户端上传,然后服务端自动将文件 数据导致数据库”
为什么不按这个做下呢?!
先把文件上传功能给搞定吧!
接下来自然而然就解决了
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Servlet+JSP+JavaBean的新生管理系统源码+数据库+部署说明(javaweb高分课设).zip # JavaWeb项目之新生管理系统(Servlet+JSP+JavaBean) ## 项目介绍 ### 功能介绍 -登录,登出和登录验证 -新生报到:     新生录取信息管理:条件搜索新生,搜索结果以列的形式给出,可以对列中的客户信息进行编辑和删除,导入新生信息     班级分配:修改新生班级     专业调整:修改新生系别和专业     财务缴费:条件搜索新生缴费情况,搜过结果以列的形式给出 -宿舍管理:条件搜索宿舍,搜索结果以列的形式给出,管理宿舍人员(查看人员,增加人员,删除人员) -班级管理:条件搜索班级,搜索结果以列的形式给出,管理班级人员(查看人员,增加人员,删除人员) -成绩管理:条件搜索成绩,搜索结果以列的形式给出 -用户管理:管理员修改密码 ### 运用知识 -数据库基本查询 -数据库连接池c3p0 -运用dbutil.jar包一键封装单数据到bean对象中,简化对数据库增、删、改、查的代码 -运用fileupload.jar包上传文件 -运用poi.jar包解析EXCEL文件 -AJAX异步更新 -运用json-lib.jar包将数据转化为JSON格式 -标签库JSTL -JavaWeb三层框架的分离 ## 准备 1.导入第三方包,c3p0配置文件和db.proerties数据库配置文件 2、建包 -dao,dao.impl -service,service.impl -servlet.controller,servle.filter,servle.UI -domain ## 搭建环境 IntelliJ IDEA +MySQL

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧