博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
html table导出到Excel中,走后台保存文件,js并调用另保存
阅读量:5134 次
发布时间:2019-06-13

本文共 4919 字,大约阅读时间需要 16 分钟。

tableToExcel工具类,此工具类指定格式的表格进行转Excel

格式:其中不能带有thead,tbody和th标签

表头1 表头2 表头3 表头4
数据1 数据2 数据3 数据4
数据1 数据2 数据3 数据4

工具类:

package com.zx.erjiqualitydata;import java.io.ByteArrayInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.List;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;import org.apache.poi.hssf.util.CellRangeAddress;import org.apache.poi.ss.usermodel.CellStyle;import org.apache.poi.ss.usermodel.Font;import org.apache.poi.ss.usermodel.IndexedColors;import org.apache.poi.ss.usermodel.Workbook;import org.jdom.Document;import org.jdom.Element;import org.jdom.JDOMException;import org.jdom.input.SAXBuilder;import org.springframework.util.ClassUtils;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;public class TableToExcel {     /**      * @author lusong     * @param sheetName      * @param html      * @param headNum表头的行数      * @throws FileNotFoundException      * zyn      * 2012-12-21 下午1:44:02      */      public static String tableToExcel(String sheetName,String html,int headNum) throws FileNotFoundException{          HSSFWorkbook wb = new HSSFWorkbook();          HSSFSheet sheet = wb.createSheet(sheetName);          CellStyle headStyle = createHeadStyle(wb);          CellStyle bodyStyle = createBodyStyle(wb);          HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();        String filePath = request.getSession().getServletContext().getRealPath("/static/document");        String path = filePath+"\\"+sheetName+".xlsx";        FileOutputStream os = new FileOutputStream(path);          SAXBuilder sb = new SAXBuilder();          try {              ByteArrayInputStream is = new ByteArrayInputStream(html.getBytes("UTF-8"));              Document document = sb.build(is);              //获取table节点              Element root = document.getRootElement();              //获取tr的list              List
trList = root.getChildren("tr"); int[][] area = getCellArea(trList); //循环创建行 for(int i=0;i
tdList = trList.get(i).getChildren("td"); //该行td的序号 int tdIndex = 0; for(int ii=0;ii
trList){ //获取table单元格矩阵 Element headtr = trList.get(0); List
headTdList = headtr.getChildren("td"); //每行的未经合并的单元格个数 int cols = 0; for(Element e:headTdList){ int colspan = Integer.valueOf(null==e.getAttributeValue("colspan")?"0":e.getAttributeValue("colspan")); if(colspan==0){ colspan =1; } cols += colspan; } //初始化单元格矩阵 int[][] area = new int[trList.size()][cols]; for(int i=0;i
tdList = tr.getChildren("td"); //该行到ii个单元格为止被合并的单元格个数 int rowColspan = 0; for(int ii=0;ii
1?colspan:1; rowColspan += colspan-1; //单元格需要被横向合并声明为1 for(int m=1;m
1?rowspan:1; //单元格需要被纵向向合并声明为2 for(int m=1;m
1\")); String tableHtmlString = "
"; //tableToExcel("缴费统计", "
医疗机构名称
级别
类别
属性
所有制
所在地
河北二院 三级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 三级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 公有制 河北省-石家庄市-裕华区
河北二院 三级医院 综合 公立 公有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 私有制 河北省-石家庄市-裕华区
省三院 二级医院 综合 公立 公有制 河北省-石家庄市-长安区
省三院 二级医院 综合 公立 阿斯蒂芬 北京-北京市-东城区
河北二院 三级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 三级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 公有制 河北省-石家庄市-裕华区
河北二院 三级医院 综合 公立 公有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 私有制 河北省-石家庄市-裕华区
省三院 二级医院 综合 公立 公有制 河北省-石家庄市-长安区
省三院 二级医院 综合 公立 阿斯蒂芬 北京-北京市-东城区
", 1); tableToExcel("缴费统计", "
医疗机构名称 级别 类别 属性 所有制 所在地
河北二院 三级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 三级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 私有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 公有制 河北省-石家庄市-裕华区
河北二院 三级医院 综合 公立 公有制 河北省-石家庄市-裕华区
河北二院 二级医院 综合 公立 私有制 河北省-石家庄市-裕华区
省三院 二级医院 综合 公立 公有制 河北省-石家庄市-长安区
省三院 二级医院 综合 公立 阿斯蒂芬 北京-北京市-东城区
", 1); } }

 

转载于:https://www.cnblogs.com/lubolin/p/10767597.html

你可能感兴趣的文章
sl学习疑问
查看>>
老李分享:android手机测试之适配(1)
查看>>
彻底理解position与anchorPoint - Wonderffee's Blog(转)
查看>>
C# 读取EXCEL文件的三种经典方法
查看>>
记错严格管理时间---记一次老师讲的学习方法
查看>>
02: DOM 实例
查看>>
nisi 脚本示例
查看>>
连接Linux服务器操作Oracle数据库
查看>>
JavaBean到底是个什么东西
查看>>
Html input file控件使用accept过滤 限制的文件类型
查看>>
赛道对比测试高尔夫6/7 全面解析后悬架
查看>>
右侧悬浮菜单
查看>>
induced pluripotent stem cell (iPSC) 诱导性多能干细胞
查看>>
告白气球--吉他教学
查看>>
GNOME 3 + Ubuntu 11.04
查看>>
2.2使用urllib的简单传输
查看>>
XML基础概念
查看>>
fastReport 小总结
查看>>
数据库_day03_对数据库的基本操作
查看>>
Mac上创建cocos2d-x工程
查看>>