Jsp+poi+servlet导入Excel到Mysql

no_smoking 发布于 2012/09/04 15:01
阅读 4K+
收藏 0

MySQL连接为什么挂死了?别踩坑!>>>

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插入到数据库表,现在我想通过Jsp页面在端上传,然后服务端自动将文件 数据导致数据库希望各位朋友指点一下.O(∩_∩)O谢谢!
加载中
0
Ryan-瑞恩
Ryan-瑞恩
有点乱啊,,,,,能不能修正格式啊啊
0
no_smoking
no_smoking

好的

 

package zsl.csfn.util;

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 CreateExcel {

	/**
	 * 批量导入excel数据
	 */
	//记录类的输出信息
	static Log log=LogFactory.getLog(CreateExcel.class);
	//获取Excel文档的路径
	public static String filePath="E://excel.xls";
	public static void main(String[] args) 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();
		}
	}

}

这样比较清楚点.
0
曾杰
曾杰
用commons-upload,页面上传文件,然后服务端读取这个流当做excel就行了,一样解析
0
Smile月光
Smile月光
能给出完整的代码吗?panfanglin@gmail.com
Hakuman
Hakuman
你这边已经做好了吧,我看已经是四年前的事情了
0
Hakuman
Hakuman

同求谢谢

返回顶部
顶部