您的位置:首页 > 其它

使用poi从服务器保存数据到本地

2013-01-21 16:25 417 查看
import java.io.BufferedWriter;

import java.io.IOException;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.util.List;

import javax.servlet.ServletContext;

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.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import org.apache.poi.ss.usermodel.Workbook;

import org.springframework.web.context.WebApplicationContext;

import org.springframework.web.context.support.WebApplicationContextUtils;

/**

* 用户信息导出类

*

* @author 寇航艇

*

*/

public class UseServlet extends HttpServlet

{

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

{

doPost(request, response);

}

@SuppressWarnings("unchecked")

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

{

response.setContentType("text/html");

// 封装页面的参数

UserInfo bo = new UserInfo();

// 调用业务层

ServletContext servletContext = this.getServletContext();

WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);

IUsersBus userinfo= (IUsersBus)ctx.getBean("userinfo");

List<UserInfo> list = certUseDS.queryUses(bo, 50000, 1).getRows();

OutputStream outs = response.getOutputStream();

BufferedWriter bw = null;

OutputStreamWriter osw = null;

String fileName = "excel" + String.valueOf(System.currentTimeMillis()).substring(9, 13) + ".xls";

String headStr = "attachment; filename=\"" + fileName + "\"";

response.setContentType("APPLICATION/OCTET-STREAM");

response.setHeader("Content-Disposition", headStr);

osw = new OutputStreamWriter(outs, "GB2312");

createExcel(list,outs);

}

/**

* 将读取到的文件重新写入新的文件

* @param output

*

* @param bw

*/

public void createExcel( List<UserInfo> list, OutputStream output)

{

Workbook workBook = null;

Row row = null;

Cell cell = null;

try

{

// 创建一个工作簿

// 生成xlsx格式

// workBook = new XSSFWorkbook();

// 生成xls格式

workBook = new HSSFWorkbook();

// 创建工作表

Sheet sheet = workBook.createSheet("users");

// 创建excel表头

createExcelHead(sheet.createRow(0));

// 将数据写入excel

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

{

// 创建一行

row = sheet.createRow(i + 1);

int cellNo = 0;

// 循环创建单元格

cell = row.createCell(cellNo++);

// 给单元格设值

cell.setCellValue(list.get(i).getUserName());

cell = row.createCell(cellNo++);

cell.setCellValue(list.get(i).getBirth());

cell = row.createCell(cellNo++);

cell.setCellValue(list.get(i).getCreatedTime());

cell = row.createCell(cellNo++);

cell.setCellValue(list.get(i).getCounty());

}

// 将内容写入Excel

workBook.write(output);

}

catch (Exception e)

{

e.printStackTrace();

}

finally

{

try

{

output.close();

}

catch (IOException e)

{

e.printStackTrace();

}

}

}

/**

* 创建excel表头

*

* @param row

* 行

*/

private void createExcelHead(Row row)

{

Cell cell;

int cellNum = 0;

// 设置标题

cell = row.createCell(cellNum++);

cell.setCellValue("用户名");

cell = row.createCell(cellNum++);

cell.setCellValue("生日");

cell = row.createCell(cellNum++);

cell.setCellValue("注册日期");

cell = row.createCell(cellNum++);

cell.setCellValue("籍贯");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐