java导出excel表格

  1. 1.Excel.html
  2. 2.web.xml
  3. 3.spring-mvc.xml
  4. 4.ExcelUtil.java

jar包如上所示

参考网址

1.Excel.html

<!DOCTYPE html>
<html>
<head>
    <title>测试Excel</title>
    <meta charset="utf-8">
    <script type="text/javascript">
       function testExcel(){
               location.href = "/TestExcel/excel.action";
       }
    </script>
</head>
<body>
    <input type="button" value="导出excel" onclick="testExcel();">
</body>
</html>

2.web.xml

<servlet>
      <servlet-name>TestExcel</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring-mvc.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
      <servlet-name>TestExcel</servlet-name>
      <url-pattern>*.action</url-pattern>
  </servlet-mapping>

3.spring-mvc.xml

<context:component-scan base-package="cn.cw.study"></context:component-scan>

<mvc:annotation-driven/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/xml/"></property>
    <property name="suffix" value=".html"></property>

</bean>

4.ExcelUtil.java

@Controller
public class ExcelUtil {
    @RequestMapping("/excel")
    public static void execute(HttpServletRequest request,HttpServletResponse response){
        String name = "成绩单测试";
        String[] title = {"名称","性别"};

        String fileName = System.currentTimeMillis()+".xls";

        String[][] text = {{"小明","男"},{"小花","女"}};

        HSSFWorkbook sheet = getSheet(name, title, text);
        downLoad(response,sheet,fileName);
    }
    public static void downLoad(HttpServletResponse response,HSSFWorkbook sheet,String fileName){
        try {
            response.setContentType("application/octet-stream;charset=ISO8859-1");
            response.setHeader("Content-Disposition", "attachment;filename="+ fileName);
            response.addHeader("Pargam", "no-cache");
            response.addHeader("Cache-Control", "no-cache");

            OutputStream outputStream = response.getOutputStream();
            sheet.write(outputStream);
            outputStream.flush();
            outputStream.close();

        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }

    }

    public static HSSFWorkbook getSheet(String name,String[] tile,String[][] text){
        //创建HSSFWorkbook对象(excel的文档对象)
        HSSFWorkbook workbook = new HSSFWorkbook();
        //建立新的sheet对象(excel的表单)
        HSSFSheet sheet = workbook.createSheet(name);
        //设置样式
        HSSFCellStyle style = workbook.createCellStyle();
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
        HSSFRow row = sheet.createRow(0);


        //声明列对象
        HSSFCell cell = null;
        //创建标题
        for(int i=0;i<tile.length;i++){
            cell = row.createCell(i);
            cell.setCellValue(tile[i]);
            cell.setCellStyle(style);
        }

        //创建内容
        for(int i=0;i<text.length;i++){
            HSSFRow rows = sheet.createRow(i+1);
            for(int j=0;j<text[i].length;j++){
                //将内容按顺序赋给对应的列对象
                HSSFCell createCell = rows.createCell(j);
                createCell.setCellValue(text[i][j]);
                createCell.setCellStyle(style);
            }

        }
        return workbook;
    }
}

文章标题:java导出excel表格

发布时间:2020-01-16, 18:00:42

最后更新:2020-01-16, 18:00:43