1. 程式人生 > >java 中 excel生成並檔案下載儲存到本地

java 中 excel生成並檔案下載儲存到本地

servlet類
 package com.dragon.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.HSSFCellStyle;
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; public class ExcelServlet extends HttpServlet { /** * Constructor of the object. */ public ExcelServlet() { super
(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param
request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // response.setContentType("text/html"); // PrintWriter out = response.getWriter(); // out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); // out.println("<HTML>"); // out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); // out.println(" <BODY>"); // out.print(" This is "); // out.print(this.getClass()); // out.println(", using the GET method"); // out.println(" </BODY>"); // out.println("</HTML>"); // out.flush(); // out.close(); this.doPost(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("application/vnd.ms-excel"); OutputStream out = response.getOutputStream(); //報頭用於提供一個推薦的檔名,並強制瀏覽器顯示儲存對話方塊 //attachment表示以附件方式下載。如果要在頁面中開啟,則改為 inline response.setHeader("Content-Disposition", "attachment; filename=TestExcel1.xls "); //建立workbook工作薄 Workbook workbook = new HSSFWorkbook(); //建立工作表 Sheet sheet = workbook.createSheet("使用者資訊"); //建立第二個工作薄 Sheet sheet2 = workbook.createSheet(); //為工作薄起名字 workbook.setSheetName(1, "口袋裡的小龍"); //設定單元格樣式 HSSFCellStyle hssfCellStyle = (HSSFCellStyle) workbook.createCellStyle(); hssfCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//居中顯示 hssfCellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//縱向居中 //建立行 Row row = sheet.createRow(0); //建立單元格 Cell cell = row.createCell(0); //設定第一行第一格的值 cell.setCellValue("姓名"); //設定單元格的文字居中顯示 cell.setCellStyle(hssfCellStyle); //建立單元格 Cell cell1 = row.createCell(1); //設定第一行第一格的值 cell1.setCellValue("性別"); cell1.setCellStyle(hssfCellStyle); //建立單元格 Cell cell2 = row.createCell(2); //設定第一行第一格的值 cell2.setCellValue("年齡"); cell2.setCellStyle(hssfCellStyle); //建立單元格 Cell cell3 = row.createCell(3); //設定第一行第一格的值 cell3.setCellValue("家庭住址"); cell3.setCellStyle(hssfCellStyle); for (int i = 1; i <= 5; i++) { //建立行 Row rows = sheet.createRow(i); //建立單元格 Cell cells = rows.createCell(0); //設定第一行第一格的值 cells.setCellValue("張三"+i); //建立單元格 Cell cell1s = rows.createCell(1); //設定第一行第一格的值 cell1s.setCellValue("男"); //建立單元格 Cell cell2s = rows.createCell(2); //設定第一行第一格的值 cell2s.setCellValue(18+i); //建立單元格 Cell cell3s = rows.createCell(3); //設定第一行第一格的值 cell3s.setCellValue("家庭住址"+i); } workbook.write(out); System.out.println("資料寫入成功!"); out.flush(); out.close(); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } } index.jsp頁面 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form action="servlet/ExcelServlet" method="post"> <input type="submit" value="測試"></input> </form> </body> </html>