JAVA 导出 Excel, JS 导出 Excel
本介绍两种Excle导出方法: JAVA 导出 Excle, JS 导出 Excle
1, js 根据 html 页面的 table > tr > td 标签导出
js代码:
//导出var idTmr; function getExplorer() { var explorer = window.navigator.userAgent ; //ie if (explorer.indexOf("MSIE") >= 0) { return 'ie'; } //firefox else if (explorer.indexOf("Firefox") >= 0) { return 'Firefox'; } //Chrome else if(explorer.indexOf("Chrome") >= 0){ return 'Chrome'; } //Opera else if(explorer.indexOf("Opera") >= 0){ return 'Opera'; } //Safari else if(explorer.indexOf("Safari") >= 0){ return 'Safari'; } } function exportData(tableid) { if(getExplorer()=='ie') { var curTbl = document.getElementById(tableid); var oXL = new ActiveXObject("Excel.Application"); var oWB = oXL.Workbooks.Add(); var xlsheet = oWB.Worksheets(1); var sel = document.body.createTextRange(); sel.moveToElementText(curTbl); sel.select(); sel.execCommand("Copy"); xlsheet.Paste(); oXL.Visible = true; try { var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls"); } catch (e) { print("Nested catch caught " + e); } finally { oWB.SaveAs(fname); oWB.Close(savechanges = false); oXL.Quit(); oXL = null; idTmr = window.setInterval("Cleanup();", 1); } } else { tableToExcel(tableid);} } function Cleanup() { window.clearInterval(idTmr); CollectGarbage(); } var tableToExcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>', base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s)));}, format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; });};return function(table, name) { if (!table.nodeType) table = document.getElementById(table); var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML};window.location.href = uri + base64(format(template, ctx));};})();
html 代码:
<input class='btn_04' type='button' id='exportData' value="导出数据" onclick="exportData('tableExcel')"/>
ps:js 导出可兼容主流浏览器,包括360. 缺陷为:只能导出千级别的数据量,亲测15000条数据不能导出
----------------------------------------------------------------------------------
2, java 导出 Excle文件,根据集合遍历生成excle,需要依赖 poi-3.8-20120326.jar 包(或其他版本,请自行下载)
java 代码:
List<ClUserinfo> regUsers = clSecurityService.findClUserinfos(clSecurityForm);List<TempUser> userList = new ArrayList<TempUser>();for (ClUserinfo userinfo : regUsers) {TempUser user = new TempUser();user.setUserName(userinfo.getUserName());user.setUserType(userinfo.getUserType());user.setCompany(userinfo.getCompany());user.setKeshi(userinfo.getKeshi());user.setProvince(userinfo.getProvince());user.setCreatedDate(userinfo.getCreatedDate());user.setCreateDateStr(userinfo.getCreatedDate().toString());userList.add(user);}HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("注册用户表"); HSSFRow row = sheet.createRow((int) 0); HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); HSSFCell cell = row.createCell((short) 0); cell.setCellValue("姓名"); cell.setCellStyle(style); cell = row.createCell((short) 1); cell.setCellValue("专委会"); cell.setCellStyle(style); cell = row.createCell((short) 2); cell.setCellValue("单位"); cell.setCellStyle(style); cell = row.createCell((short) 3); cell.setCellValue("科室"); cell.setCellStyle(style); cell = row.createCell((short) 4); cell.setCellValue("注册日期"); cell.setCellStyle(style); for (int i = 0; i < userList.size(); i++) { row = sheet.createRow((int) i + 1); TempUser user = (TempUser) userList.get(i); row.createCell((short) 0).setCellValue(user.getUserName()); row.createCell((short) 1).setCellValue(user.getUserType()); row.createCell((short) 2).setCellValue(user.getCompany());row.createCell((short) 3).setCellValue(user.getKeshi());row.createCell((short) 4).setCellValue(user.getCreateDateStr());} try { FileSystemView fsv = FileSystemView.getFileSystemView();File com=fsv.getHomeDirectory(); //桌面 FileOutputStream fout = new FileOutputStream(com.getPath() + "/注册用户列表-" + new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()) + ".xls"); wb.write(fout); fout.close(); } catch (Exception e) { e.printStackTrace(); }
转载于:https://www.cnblogs.com/linnuo/p/6732292.html
JAVA 导出 Excel, JS 导出 Excel相关推荐
- js导出EXCEL js导出EXCEL
参考一:http://wenku.baidu.com/view/7b81f3eb6294dd88d0d26b57.html 参考二: js导出EXCEL js导出EXCEL <html> ...
- php导出复杂表头excel,js导出复杂表头(多级表头)的excel
Document 姓名 一月 二月 收入支出收入支出张三10元20元15元25元李四100元200元150元250元 导出excel functiontableToExcel(){//要导出的数据 v ...
- vue使用Export2Excel.js导出表格自定义样式(表头加分割斜线)(笔记)
1.Export2Excel.js 文件内容 /* eslint-disable */ /** 导出Excel需要依赖 * npm install xlsx file-saver -S * npm i ...
- java如何导入和导出ex_SpringBoot中关于Excel的导入和导出
前言 由于在最近的项目中使用Excel导入和导出较为频繁,以此篇博客作为记录,方便日后查阅.本文前台页面将使用layui,来演示对Excel文件导入和导出的效果.本文代码已上传至我的gitHub,欢迎 ...
- xlsx.js 实现前端 table 数据导出并下载为 excel
目录 需求 ① 加载 xlsx.js ② 引入 JS 代码 ③ 按钮绑定事件 结果 附源码 需求 在写一个 SSM 项目的时候需要添加 excel 数据导出的功能, 实质上也就是将从数据库中渲染到前端 ...
- Java 亿万级数据导出到Excel
由于项目需要,处理百万级数据导出问题. 直接开始撸代码~ 导入依赖 <!-- 文件导出--><dependency><groupId>org.apache.poi& ...
- 使用xlsx.js导出有复杂表头的excel
前端使用xlsx.js导出有复杂表头的excel 参考: Vue项目中使用xlsx-style导出有格式的表格,这个博客中的实现是针对单个excel手写合并样式,比较繁琐. 我这里实现了根据table ...
- Java报表工具FineReport导出EXCEL的四种API
在实际的应用中会经常需要将数据导出成excel,导出的方式除原样导出还有分页导出.分页分sheet导出和大数据量导出.对于excel 2003版,由于限制了每个sheet的最大行数和列数,大数据量导出 ...
- java超级简单到爆的Excel导入导出(easypoi)
场景: 在日常工作中,excel导入导出,是十分常见的,有两种主流的技术,一种是jxl,另一种是poi,而easypoi就是对poi进行了封装,使得导入导出变得更加的简单,阿里巴巴也有封装的工具名叫E ...
- 浏览器端JS导出EXCEL
浏览器端JS导出EXCEL FileSaver.js 实现了在本身不支持 HTML5 W3C saveAs() FileSaver 接口的浏览器支持文件保存.FileSaver.js 在客户端保存文件 ...
最新文章
- 计算机基本组成: 触发器
- 蓝桥学院2019算法题1.3
- JSON.parse使用 之 Unexpected token o in JSON at position 1 报错原因
- cas后端返回html直接跳转,CAS验证成功后不能跳转到登陆成功的主页面解决办法...
- 转https_这个PDF转图片技巧,不用1分钟就能快速上手
- StakeDAO新增Sushiswap流动性奖励计划
- amazon linux ami root 密码,Ubuntu Server的Amazon AMI映像的默认用户名是什么?
- sendRedirect的路径
- python可以处理什么文件_第十五篇 Python之文件处理
- 安装R和Rstudio win10
- 阿里云云计算ACP学习(二)---弹性存储
- mybatis看这一篇就够了,简单全面一发入魂
- VBA轻松实现多色渐变填充
- 转载:SpringBoot非官方教程 | 第二十四篇: springboot整合docker
- Linux打印添加水印,linux下word转pdf,加水印
- 手机智能汽车钥匙来了, 汽车远程启动在手机上就能完成
- Vista下最好用输入法 - 搜狗拼音输入法4.0正式版闪亮登场!
- Higgs全球区块链投融资交流会(香港站)成功举办,路演项目备受瞩目
- 《近匠》专访Ayla Networks云平台工程部主管——企业级物联网云平台的设计与部署...
- 运放的基本应用电路-运放电路设计-运算放大器的基本应用电路
热门文章
- RPM-GPG-KEY在包安装时候的作用
- HDOJ--2092--整数解(水题)
- Apache无法加载PHP模块的解决方案
- (二)Luence——代码实现索引及搜索
- 语音分析应用场景——来电原因分析与运营效率提升
- MongoDB学习(一)Centos6.5下安装mongoDB
- 程序防止多开的几种常见方法
- [转]架构师的职责及工作描述
- 任正非谈鸿蒙系统06 新闻,任正非首谈华为鸿蒙操作系统:很有可能比安卓和苹果还要快!...
- 17.Mongodb预分片(pre-split)/autosplit(chunk/jumbochunk相关)