正文
java web 读取数据库数据写入Excel返回浏览器下载
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
@RequestMapping(value = "/download", method = RequestMethod.GET)
public void downstudents(HttpServletRequest request, HttpServletResponse response) throws IOException {
// 一、从后台拿数据
List<Dept> list = null;
list=ds.list();
try {
// 二、 数据转成excel
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("application/x-download"); String fileName = "dept.xls";
fileName = URLEncoder.encode(fileName, "UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
// 第一步:定义一个新的工作簿
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步:创建一个Sheet页
HSSFSheet sheet = wb.createSheet("deptsheet");
HSSFCellStyle style=wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//设置居中(无效)
sheet.setDefaultRowHeight((short) (256));// 设置行高
sheet.setColumnWidth(0, 2000);// 设置列宽
sheet.setColumnWidth(1, 5000);
sheet.setColumnWidth(2, 5500);
sheet.setColumnWidth(3, 5500); HSSFFont font = wb.createFont();
font.setFontName("宋体");//设置字体
font.setFontHeightInPoints((short) 16);//设置文字大小 HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue("序号");
cell = row.createCell(1);
cell.setCellValue("部门编号");
cell = row.createCell(2);
cell.setCellValue("部门名称");
cell = row.createCell(3);
cell.setCellValue("地址"); HSSFRow rows;
HSSFCell cells;
for (int i = 0; i < list.size(); i++) {
// 第三步:在这个sheet页里创建一行
rows = sheet.createRow(i + 1);
// 第四步:在该行创建一个单元格
cells = rows.createCell(0);
// 第五步:在该单元格里设置值
cells.setCellValue(i+1);
cells = rows.createCell(1);
cells.setCellValue(list.get(i).getDeptno());
cells = rows.createCell(2);
cells.setCellValue(list.get(i).getDname());
cells = rows.createCell(3);
cells.setCellValue(list.get(i).getLoc()); } OutputStream out = response.getOutputStream();
wb.write(out);
out.close();
wb.cloneSheet(0);
} catch (IOException e) {
e.printStackTrace();
}
}
javaCode