package servlet;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import com.db.dbDAO.MyDbDAO;
import com.db.entity.Person;
public class ReadExcel extends HttpServlet {
private static final long serialVersionUID = 1L;
String value = "";
public ReadExcel() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String filePath = new String(request.getParameter("file").getBytes("ISO-8859-1"), "UTF-8");
String str="";
String[] temp=null;
HttpSession session=request.getSession();
out.print("文件路径:"+filePath+"<br>");
try
{
// POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream( "D:/a.xls"));
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filePath));
// 创建工作簿
HSSFWorkbook workBook = new HSSFWorkbook(fs);
/**
* 获得Excel中工作表个数
*/
out.println("工作表个数 :"+workBook.getNumberOfSheets()+"<br>");
for (int i = 0; i < workBook.getNumberOfSheets(); i++)
{
out.println("<font color='red'> "+i+" ***************工作表名称:"+workBook.getSheetName(i)+" ************</font><br>");
// 创建工作表
HSSFSheet sheet = workBook.getSheetAt(i);
int rows = sheet.getPhysicalNumberOfRows(); // 获得行数
if (rows > 0)
{
sheet.getMargin(HSSFSheet.TopMargin);
for (int j = 0; j < rows; j++)
{ // 行循环
HSSFRow row = sheet.getRow(j);
if (row != null)
{
int cells = row.getLastCellNum();//获得列数
for (short k = 0; k < cells; k++)
{ // 列循环
HSSFCell cell = row.getCell(k);
if (cell != null)
{
switch (cell.getCellType())
{
case HSSFCell.CELL_TYPE_NUMERIC: // 数值型
if (HSSFDateUtil.isCellDateFormatted(cell))
{
//如果是date类型则 ,获取该cell的date值
value = HSSFDateUtil.getJavaDate(cell.getNumericCellValue()).toString();
out.println("第"+j+"行,第"+k+"列值:"+value+"<br>");
}
else
{//纯数字
value = String.valueOf(cell
.getNumericCellValue());
out.println("第"+j+"行,第"+k+"列值:"+value+"<br>");
System.out.println("value1:"+value);
}
break;
/* 此行表示单元格的内容为string类型 */
case HSSFCell.CELL_TYPE_STRING: // 字符串型
value = cell.getRichStringCellValue().toString();
out.println("第"+j+"行,第"+k+"列值:"+value+"<br>");
System.out.println("value2:"+value);
str+=value+",";
break;
case HSSFCell.CELL_TYPE_FORMULA://公式型
//读公式计算值
value = String.valueOf(cell.getNumericCellValue());
if(value.equals("NaN"))
{//如果获取的数据值为非法值,则转换为获取字符串
value = cell.getRichStringCellValue().toString();
}
//cell.getCellFormula();读公式
out.print("第"+j+"行,第"+k+"列值:"+value+"<br>"); //解析的username这一字段
break;
case HSSFCell.CELL_TYPE_BOOLEAN://布尔
value = " " + cell.getBooleanCellValue();
out.println("第"+j+"行,第"+k+"列值:"+value+"<br>"); //解析的userpass
break;
/* 此行表示该单元格值为空 */
case HSSFCell.CELL_TYPE_BLANK: // 空值
value = "";
out.print("第"+j+"行,第"+k+"列值:"+value+"<br>"); //解析的username的值
break;
case HSSFCell.CELL_TYPE_ERROR: // 故障
value = "";
out.println("第"+j+"行,第"+k+"列值:"+value+"<br>");
break;
default:
value = cell.getRichStringCellValue().toString();
out.println("第"+j+"行,第"+k+"列值:"+value+"<br>");
}
}
}
}
}
System.out.println("str:"+str);
System.out.println(str.length());
// str=str.substring(0,str.length()-1);//把最后的","去掉
temp=str.split(",");
}
}
session.setAttribute("temp", temp);
}
catch (Exception ex)
{
ex.printStackTrace();
}
out.print("<script>alert('解析完毕');</script>");
response.sendRedirect("/excelImport/showdata.jsp");
out.flush();
out.close();
}
p
没有合适的资源?快使用搜索试试~ 我知道了~
将excel数据插入到数据库中去demo.zip
共30个文件
java:10个
class:10个
xml:3个
需积分: 13 15 下载量 128 浏览量
2013-05-25
12:56:35
上传
评论
收藏 40KB ZIP 举报
温馨提示
将excel数据插入到数据库中去的一个实例,实例里面有jar包和实例数据库。
资源推荐
资源详情
资源评论
收起资源包目录
excel数据插入到数据库中去.zip (30个子文件)
将excel数据插入到数据库中去
a.xls 18KB
excelImport
.project 1KB
.mymetadata 306B
src
struts.xml 661B
com
db
action
ExceladdAction.java 518B
Personadd.java 774B
dbDAO
MyDbDAO.java 3KB
connection
DbConnection.java 595B
entity
ReadExcel.java 7KB
Person.java 657B
list
test
RegisterOgnlAction.java 367B
Register.java 976B
servlet
ReadExcel.java 8KB
ExcelDb.java 2KB
WebRoot
WEB-INF
classes
struts.xml 661B
com
db
action
ExceladdAction.class 1KB
Personadd.class 2KB
dbDAO
MyDbDAO.class 4KB
connection
DbConnection.class 1KB
entity
ReadExcel.class 5KB
Person.class 1KB
list
test
Register.class 1KB
RegisterOgnlAction.class 713B
servlet
ReadExcel.class 6KB
ExcelDb.class 2KB
lib
web.xml 2KB
META-INF
MANIFEST.MF 39B
showdata.jsp 1KB
read.jsp 957B
.myeclipse
.classpath 2KB
共 30 条
- 1
资源评论
huangkai688
- 粉丝: 2
- 资源: 34
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功