JSON数据导出Excel表
JSON数据导出Excel表
应老板要求写了一个实用的小功能,需求是将api接口返回的JSON数据导出Excel表,过程中改了两稿,一是前端js直接导出一个表,另一是分门别类在java中同时导出多个表(例:如输入某公司,将各部门各人员的具体信息导出,分多张表,不同部门存放不同表):
- JS写法
- JAVA写法
JS写法
话不多说,直接上代码!
代码块
json数据转excel函数:
//json数据转excelfunction JSONToExcelConvertor(JSONData, FileName) { //先转化json var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData; var excel = '<table>'; var row = "<tr>"; //设置表头 var keys = Object.keys(JSONData[0]); keys.forEach(function (item) {row += "<td>" + item + '</td>';}); //换行 excel += row + "</tr>"; //设置数据for (var i = 0; i < arrData.length; i++) { var row = "<tr>"; for (var index in arrData[i]) { console.log(arrData[i][index]);//var value = arrData[i][index] === "." ? "" : arrData[i][index]; row += '<td>' + arrData[i][index] + '</td>'; } excel += row + "</tr>"; } excel += "</table>"; var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>"; excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">'; excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel'; excelFile += '; charset=UTF-8">'; excelFile += "<head>"; excelFile += "<!--[if gte mso 9]>"; excelFile += "<xml>"; excelFile += "<x:ExcelWorkbook>"; excelFile += "<x:ExcelWorksheets>"; excelFile += "<x:ExcelWorksheet>"; excelFile += "<x:Name>"; excelFile += "{worksheet}"; excelFile += "</x:Name>"; excelFile += "<x:WorksheetOptions>"; excelFile += "<x:DisplayGridlines/>"; excelFile += "</x:WorksheetOptions>"; excelFile += "</x:ExcelWorksheet>"; excelFile += "</x:ExcelWorksheets>"; excelFile += "</x:ExcelWorkbook>"; excelFile += "</xml>"; excelFile += "<![endif]-->"; excelFile += "</head>"; excelFile += "<body>"; excelFile += excel; excelFile += "</body>"; excelFile += "</html>"; var uri = 'data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(excelFile); var link = document.createElement("a"); link.href = uri; link.style = "visibility:hidden"; link.download = FileName + ".xls"; document.body.appendChild(link); link.click(); document.body.removeChild(link); }
判断json格式函数:
//判断是否为JSON格式数据function isJSON(str) {try { if (typeof JSON.parse(str) == "object") { return true; } } catch(e) { } return false; }
Java写法
代码块
json数据转excel函数:
public static void exportExcel(String name,JSONArray ja,String tbName){XSSFWorkbook workbook = new XSSFWorkbook();XSSFSheet sheet = workbook.createSheet(name);XSSFRow row = sheet.createRow(0);int index = 0;if(tbName.equals("")){tbName = "excel";}File file = new File("C:\\"+tbName);if(!file.exists()){file.mkdir();}JSONObject first = ja.getJSONObject(0); Iterator<String> iterator = first.keys(); // 得到第一项的key集合 while (iterator.hasNext()) { // 遍历key集合 String key = (String) iterator.next(); // 得到key String value = first.getString(key); XSSFCell cell = row.createCell(index);cell.setCellValue(key);index++;} for (int i = 0; i < ja.size(); i++) {row = sheet.createRow(i+1);JSONObject jaa = ja.getJSONObject(i);Iterator<String> iterator1 = jaa.keys();int index1 = 0;while (iterator1.hasNext()) { // 遍历key集合 String key1 = (String) iterator1.next(); // 得到key String value = jaa.getString(key1); System.out.println(value);XSSFCell cell = row.createCell(index1);cell.setCellValue(value);index1++;} }try {String tmpPath = "C:\\"+tbName+"\\" + name + ".xlsx";OutputStream outputStream = new FileOutputStream(tmpPath);workbook.write(outputStream);outputStream.close();} catch (Exception e) {e.printStackTrace();}}
JSON数据导出Excel表相关推荐
- excel两个表格数据对比_vue实现json数据导出Excel表格
因为项目的需要, 需要从前端导出表格,今天一个坑踩了一个小时,特别分享给大家 Vue导出json数据到Excel表格 一,安装依赖(三个缺一不可) npm install file-saver --s ...
- 小功能实现(四)使用easyExcel将ArrayList<HashMap>类型的数据导出Excel表
小功能介绍 原数据是ArrayList类型,将其中的值取出并赋值到要导出的Excel表对象中,类型为ArrayList,最后导出Excel表 使用的工具是easyExcel,使用起来比原生的Excel ...
- 『解疑』前端通过json数据导出excel表格文件(支持多级表头、复杂表头)(json转excel)
问题 如何友好的通过规范的json数据导出成excel文件. 解题 制定规范的json数据结构: ( 只要将现有的数据处理成以下格式即可导出 ) {headerList: [ // 多级表头(2选1即 ...
- php 数据导出 Excel 表 tp3
vendor 引入 PHPExcel 下载:https://wwt.lanzoub.com/iu65L03o5b8h 密码:8zfx 第一种方法导出: public function getEx(){ ...
- vue中导出json数据为excel表格并保存到本地
继我上次成功利用vue和elemen把excel的数据导入至前端vue,因为excel表中的数据有些必填项没有填写或者填写错误(比如写错字)所以就要将没有成功导入的数据导出成一份excel表并保存至本 ...
- JS 打印 data数据_小程序导出数据到excel表
小程序导出数据到excel表,借助云开发后台实现excel数据的保存 我们在开发小程序的过程中,可能会有这样的需求:如何将云数据库里的数据批量导出到excel表里? 这个需求可以用强大的云开发轻松实现 ...
- 数据的导出Excel表
数据的导出Excel表 1.原理 点击前端页面的按钮函数,函数里面去调用后端对应对的请求地址,这个请求地址所对应的方法再去调用业务层,业务层再去持久层拿到数据,返回给控制层,控制层将数据封装为比特 ...
- django 导出数据到excel表 导出excel表到目标路径及客户端下载
python导出excel表利用的是xlwt模块 学习的网址 大佬教学网址 导出数据到excel表 下面是代码 import os from xlwt import Workbook from inf ...
- 前端利用JS导出数据到Excel表 数字是文本类型 无法计算
问题描述:前端利用JS导出数据到Excel表 数字是文本类型 无法进行公式计算:前端利用JS导出数据到Excel表 数字是文本类型 无法计算 解决办法:参考https://bbs.csdn.net/t ...
最新文章
- 每人300万激励科学探索,北大谢涛、清华朱军等50人获奖,腾讯这个大奖公布...
- .NET MVC对接POLYV——HTML5播放器播放加密视频
- python定时器 是线程吗_python线程定时器Timer(32)
- 集成学习之sklearn中的xgboost基本用法 (转载)
- java动态代理_Java动态代理
- Supersocket 如何使用 教程1
- Sqlserver2008相关配置问题
- GAN也有脾气:「太难的部分我就不生成了,在下告退」
- javaWEB的三大组件(入门基础总结)
- sql limit不接具体数字_SQL汇总函数和分组函数
- 2018 区块链技术及应用峰会(BTA)·中国全日程公布!
- 苗族php动态网页设计作业
- 手机抓包 fiddler 配置
- android 获取手机内存及SD卡内存可用空间
- Office 365系列之十三:Office 365管理员角色
- mysql修改金钱_mysqli修改数据库
- JAVA常见面试题及解答
- 产品机会:痛点,痒点,爽点
- matlab exm,exm 《Experiments with MATLAB》这本书的程序源码,附中文注释,简单易懂,是学习 238万源代码下载- www.pudn.com...
- 地图(用ECharts绘制)
热门文章
- webpack css中字体文件路径问题
- [Android自定义控件]双圆圈内外旋转菜单
- 170716 网线接口顺序
- lgp970 安全问题,不能识别sim卡
- MySQL数据导入1026报错问题
- word单元格自动换行,适应文字
- npm安装报错(npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path C:\Program Files\nodejs\node_ca...)
- 语义分割评价指标mIOU
- 百度地图天气接口api调用
- 微型计算机nuc 6i5syk,Intel Skylake NUC迷你机性能实测:15W的神器