【java之Web操作Excel模板导出文件】

核心代码如下:

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

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 org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import cn.com.vo.UserVO;

public class DownloadServlet extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

resp.setContentType("application/vnd.ms-excel");        //改成输出excel文件

resp.setHeader("Content-disposition","attachment; filename=file.xls" );

OutputStream out;

try {

String countFilePath = getServletContext()

.getRealPath("/count.xls");

FileInputStream in = new FileInputStream(new File(countFilePath));

List<UserVO> list =getUserList(); 

HSSFWorkbook workBook=new HSSFWorkbook(in);

HSSFSheet sheet = workBook.getSheetAt(0);

int k =1;

for (int i = 0; i < list.size(); i++) {

UserVO vo = list.get(i);

HSSFRow  row= sheet.createRow(++k);

row.createCell(0).setCellValue(vo.getId());

row.createCell(1).setCellValue(vo.getName());

row.createCell(2).setCellValue(vo.getPassword());

row.createCell(3).setCellValue(vo.getSex());

}

out = new FileOutputStream(getServletContext()

.getRealPath("/temp/count.xls"));

out = resp.getOutputStream();  

//finally

workBook.write(out);

in.close();

workBook.close();

out.flush();

out.close();

//record用户下载日志操作

} catch (Exception e) {

e.printStackTrace();

}finally{

}

}

private List<UserVO> getUserList() {

List<UserVO> users = new ArrayList<UserVO>();

users.add(new UserVO("1","张三","111","男"));

users.add(new UserVO("2","李四","111","女"));

return users;

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// TODO Auto-generated method stub

super.doPost(req, resp);

}

}

结果如下:



 

猜你喜欢

转载自gaojingsong.iteye.com/blog/2393046