1.加jar包
2.下载
package com.joker.action;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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;
/**
* Servlet implementation class DownLoadAction
*/
public class DownLoadAction extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s = wb.createSheet();
HSSFRow r = s.createRow(0);
// HSSFRow r1 = s.createRow(1);
HSSFCell c = r.createCell(0);
// HSSFCell c1 = r1.createCell(1);
HSSFCell c1 = r.createCell(1);
c.setCellValue("helloworld");
c1.setCellValue("TEST");
//这样呢,已经创建好了我们的workbook了,接下来,下载
//设置响应头,告诉响应头有附件的文件
response.setHeader("Content-Disposition", "attachment;filename=test.xls");
//然后 设置下载的文件类型
response.setContentType("application/x-download");
//获取输出流,但凡响应都是这个输出流来做工作的
OutputStream out = response.getOutputStream();
wb.write(out);
}
}
3.上传
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="doupload" method="post" enctype="multipart/form-data">
请选中上传的文件:<input type="file" name="f">
<input type="submit" value="上传">
</form>
</body>
</html>
package com.joker.action;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
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;
/**
* Servlet implementation class DoUpLoadAction
*/
public class DoUpLoadAction extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//开始处理吧。。。首先写个excel文件,一会上传上来解析...
ServletFileUpload upload=new ServletFileUpload(new DiskFileItemFactory());
//然后就开始解析request 异常一会处理吧
try {
List<FileItem> list=upload.parseRequest(request);
//这个集合里只有一个上传的控件,所以,集合长度应该为1
FileItem item=list.get(0);
//打印一下上传来的文件信息看看对不对
System.out.println(item.getName());//看下传上来文件了没
//通过测试,发现已经上传上来了,
//那么就解析吧...
//第一步,得到这个文件的流...
InputStream in=item.getInputStream();
//解析开始,其实你们就已经都会了,哈哈
HSSFWorkbook wb=new HSSFWorkbook(in);
//然后开始获取表 获取行 获取单元格
HSSFSheet s=wb.getSheetAt(0);
HSSFRow r=s.getRow(0);
//这个地方,由于第一列是个数字类型的,所以,我们用String类型获取出现了问题
//没关系,改一下就好//再来...
HSSFCell c=r.getCell(0);
System.out.println(c.getNumericCellValue());
HSSFCell c1=r.getCell(1);
System.out.println(c1.getStringCellValue());
HSSFCell c2=r.getCell(2);
System.out.println(c2.getStringCellValue());
//好了 搞定了,测试下...
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}