zoukankan      html  css  js  c++  java
  • Web页面导出Excel表格

    需要将html网页上的table中的数据导出为excel表格,网上虽然方法一大堆,

    但是有的后台报错,有的导出来的有缺陷。还好最好找出来一种。记录下:

    首先使用poi的jar包:https://files.cnblogs.com/files/ysj4428/excelExport.rar

    贴代码:

    package com.pers.demo;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.annotation.WebServlet;
    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 DownExcel
     */
    @WebServlet("/DownExcel")
    public class DownExcel extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public DownExcel() {
            super();
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request,response);
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            @SuppressWarnings("resource")
            HSSFWorkbook wb = new HSSFWorkbook();
            HSSFSheet sheet = wb.createSheet("table");  //创建table工作薄
            Object[][] datas = {{"区域", "总销售额(万元)", "总利润(万元)简单的表格"}, {"江苏省" , 9045,  2256}, {"广东省", 3000, 690}};
            HSSFRow row;
            HSSFCell cell;
            for(int i = 0; i < datas.length; i++) {
                row = sheet.createRow(i);//创建表格行
                for(int j = 0; j < datas[i].length; j++) {
                    cell = row.createCell(j);//根据表格行创建单元格
                    cell.setCellValue(String.valueOf(datas[i][j]));
                }
            }
               ByteArrayOutputStream os = new ByteArrayOutputStream();
               wb.write(os);
               byte[] content = os.toByteArray();
               InputStream is = new ByteArrayInputStream(content);
               response.reset();
               response.setContentType("application/vnd.ms-excel;charset=utf-8");
               response.setHeader("Content-Disposition", "attachment;filename=table.xls");
               
               ServletOutputStream out = response.getOutputStream();
                  BufferedInputStream bis = null;
                  BufferedOutputStream bos = null;
             
                  try {
                    bis = new BufferedInputStream(is);
                    bos = new BufferedOutputStream(out);
                    byte[] buff = new byte[2048];
                    int bytesRead;
                    while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
                      bos.write(buff, 0, bytesRead);
                    }
                  } catch (Exception e) {
                    e.printStackTrace();
                  } finally {
                    if (bis != null)
                      bis.close();
                    if (bos != null)
                      bos.close();
                  }
           // wb.write(new FileOutputStream("D:/迅雷下载/table.xls"));//这行是直接写到本地的
        }
    
    }

    如果要测试你只需要新建一个Web项目,调用servlet即可。放一个截图

  • 相关阅读:
    HDOJ 1588 Gauss Fibonacci
    HDOJ 1494 跑跑卡丁车
    初识Linux
    大数据教程
    80后上班族
    人际交往,七种心态最惹人讨厌
    商人初步
    分页存储过程
    父母生日
    dephi小技巧
  • 原文地址:https://www.cnblogs.com/ysj4428/p/6743927.html
Copyright © 2011-2022 走看看