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表相关推荐

  1. excel两个表格数据对比_vue实现json数据导出Excel表格

    因为项目的需要, 需要从前端导出表格,今天一个坑踩了一个小时,特别分享给大家 Vue导出json数据到Excel表格 一,安装依赖(三个缺一不可) npm install file-saver --s ...

  2. 小功能实现(四)使用easyExcel将ArrayList<HashMap>类型的数据导出Excel表

    小功能介绍 原数据是ArrayList类型,将其中的值取出并赋值到要导出的Excel表对象中,类型为ArrayList,最后导出Excel表 使用的工具是easyExcel,使用起来比原生的Excel ...

  3. 『解疑』前端通过json数据导出excel表格文件(支持多级表头、复杂表头)(json转excel)

    问题 如何友好的通过规范的json数据导出成excel文件. 解题 制定规范的json数据结构: ( 只要将现有的数据处理成以下格式即可导出 ) {headerList: [ // 多级表头(2选1即 ...

  4. php 数据导出 Excel 表 tp3

    vendor 引入 PHPExcel 下载:https://wwt.lanzoub.com/iu65L03o5b8h 密码:8zfx 第一种方法导出: public function getEx(){ ...

  5. vue中导出json数据为excel表格并保存到本地

    继我上次成功利用vue和elemen把excel的数据导入至前端vue,因为excel表中的数据有些必填项没有填写或者填写错误(比如写错字)所以就要将没有成功导入的数据导出成一份excel表并保存至本 ...

  6. JS 打印 data数据_小程序导出数据到excel表

    小程序导出数据到excel表,借助云开发后台实现excel数据的保存 我们在开发小程序的过程中,可能会有这样的需求:如何将云数据库里的数据批量导出到excel表里? 这个需求可以用强大的云开发轻松实现 ...

  7. 数据的导出Excel表

    数据的导出Excel表 1.原理 ​ 点击前端页面的按钮函数,函数里面去调用后端对应对的请求地址,这个请求地址所对应的方法再去调用业务层,业务层再去持久层拿到数据,返回给控制层,控制层将数据封装为比特 ...

  8. django 导出数据到excel表 导出excel表到目标路径及客户端下载

    python导出excel表利用的是xlwt模块 学习的网址 大佬教学网址 导出数据到excel表 下面是代码 import os from xlwt import Workbook from inf ...

  9. 前端利用JS导出数据到Excel表 数字是文本类型 无法计算

    问题描述:前端利用JS导出数据到Excel表 数字是文本类型 无法进行公式计算:前端利用JS导出数据到Excel表 数字是文本类型 无法计算 解决办法:参考https://bbs.csdn.net/t ...

最新文章

  1. 每人300万激励科学探索,北大谢涛、清华朱军等50人获奖,腾讯这个大奖公布...
  2. .NET MVC对接POLYV——HTML5播放器播放加密视频
  3. python定时器 是线程吗_python线程定时器Timer(32)
  4. 集成学习之sklearn中的xgboost基本用法 (转载)
  5. java动态代理_Java动态代理
  6. Supersocket 如何使用 教程1
  7. Sqlserver2008相关配置问题
  8. GAN也有脾气:「太难的部分我就不生成了,在下告退」
  9. javaWEB的三大组件(入门基础总结)
  10. sql limit不接具体数字_SQL汇总函数和分组函数
  11. 2018 区块链技术及应用峰会(BTA)·中国全日程公布!
  12. 苗族php动态网页设计作业
  13. 手机抓包 fiddler 配置
  14. android 获取手机内存及SD卡内存可用空间
  15. Office 365系列之十三:Office 365管理员角色
  16. mysql修改金钱_mysqli修改数据库
  17. JAVA常见面试题及解答
  18. 产品机会:痛点,痒点,爽点
  19. matlab exm,exm 《Experiments with MATLAB》这本书的程序源码,附中文注释,简单易懂,是学习 238万源代码下载- www.pudn.com...
  20. 地图(用ECharts绘制)

热门文章

  1. webpack css中字体文件路径问题
  2. [Android自定义控件]双圆圈内外旋转菜单
  3. 170716 网线接口顺序
  4. lgp970 安全问题,不能识别sim卡
  5. MySQL数据导入1026报错问题
  6. word单元格自动换行,适应文字
  7. npm安装报错(npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path C:\Program Files\nodejs\node_ca...)
  8. 语义分割评价指标mIOU
  9. 百度地图天气接口api调用
  10. 微型计算机nuc 6i5syk,Intel Skylake NUC迷你机性能实测:15W的神器