excel 导出json_导出的数据格式不对

excel 导出json_导出的数据格式不对json格式数据转Excel导出的两种方法第一种table格式数据直接转Excel:但是用这种方式会出现一种问题,就是当你的table有分页的情况下,只能抓取当前分页的数据。拿到表格的id就可以

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

json格式数据转Excel导出的两种方法

第一种table格式数据直接转Excel:

但是用这种方式会出现一种问题,就是当你的table有分页的情况下,只能抓取当前分页的数据。

excel 导出json_导出的数据格式不对

拿到表格的id就可以抓取表格的数据,导出到excel,这种方式简单粗暴,引入这两个插件即可。

excel 导出json_导出的数据格式不对

 

第一种方法问题奥特曼变身:将json数据转为table数据再进行Excel导出,

使用起来也比较简单,拿到数据直接往里面塞就是了,最后调用方法。这样的话最终所有数据都出来了。

excel 导出json_导出的数据格式不对

 

excel 导出json_导出的数据格式不对

 

function JSONToExcelConvertor(JSONData, FileName, ShowLabel) {
 
var arrData = typeof JSONData != ‘object’ ? JSON.parse(JSONData) : JSONData;
 
var excel = ‘<table>’;
 
//设置表头
var row = “<tr>”;
for (var i = 0, l = ShowLabel.length; i < l; i++) {
         row += “<td>” + ShowLabel[i].value + ‘</td>’;
}
 
//换行
excel += row + “</tr>”;
 
//设置数据
for (var i = 0; i < arrData.length; i++) {
     var row = “<tr>”;
 
   for(var j=0;j<arrData[i].length;j++){
     var value = arrData[i][j].value === “.” ? “” : arrData[i][j].value;
     row += ‘<td>’ + value + ‘</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);
}
var JSON_DATA = {
    “title”:[
                 {“value”:”司机”, “type”:”ROW_HEADER_HEADER”, “datatype”:”string”},
                 {“value”:”日期”, “type”:”ROW_HEADER_HEADER”, “datatype”:”string”},
                 {“value”:”物流单数量”, “type”:”ROW_HEADER_HEADER”, “datatype”:”string”},
                 {“value”:”退货单数量”, “type”:”ROW_HEADER_HEADER”, “datatype”:”string”},
                 {“value”:”发货总件数”, “type”:”ROW_HEADER_HEADER”, “datatype”:”string”},
                 {“value”:”退货总件数”, “type”:”ROW_HEADER_HEADER”, “datatype”:”string”},
                 {“value”:”拒收总件数”, “type”:”ROW_HEADER_HEADER”, “datatype”:”string”},
                 {“value”:”取消发货总件数”, “type”:”ROW_HEADER_HEADER”, “datatype”:”string”},
                 {“value”:”物流费总金额    “, “type”:”ROW_HEADER_HEADER”, “datatype”:”string”},
                 {“value”:”代收手续费总金额”, “type”:”ROW_HEADER_HEADER”, “datatype”:”string”},
                 {“value”:”代收货款总金额”, “type”:”ROW_HEADER_HEADER”, “datatype”:”string”}
        ],
       “data”:[
 
        ] 
};
第二种方法使用插件直接对json数据进行转换  插件 JsonExportExcel.min.js

1.引入js (dist目录下JsonExportExcel.min.js)

<script src="https://cuikangjie.github.io/JsonExportExcel/dist/JsonExportExcel.min.js"></script>

npm install -save  js-export-excel
const ExportJsonExcel = require('js-export-excel')

2.js代码

复制代码
 1 var option={};
 2 
 3 option.fileName = 'excel'
 4 option.datas=[
 5   {
 6    //第一个sheet
 7     sheetData:[{one:'一行一列',two:'一行二列'},{one:'二行一列',two:'二行二列'}],
 8     sheetName:'sheet',
 9     sheetFilter:['two','one'],
10     sheetHeader:['第一列','第二列']
11   },
12   {
13     //第二个sheet
14     sheetData:[{one:'一行一列',two:'一行二列'},{one:'二行一列',two:'二行二列'}]
15   }
16 ];
17 var toExcel=new ExportJsonExcel(option);
18 toExcel.saveExcel();
复制代码

option

datas 数据

/*多个sheet*/ /*每个sheet为一个object */ 
[{ sheetData:[], // 数据
    sheetName:'', // sheet名字 
    sheetFilter:[], //列过滤 
    sheetHeader:[] // 第一行 
}]

fileName 下载文件名(默认:download)

sheet option

sheetName sheet名字(可有可无)(默认sheet1)

sheetHeader 标题(excel第一行数据)

sheetData 数据源(必须)

sheetFilter 列过滤(只有在data为object下起作用)(可有可无)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167808.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python 0o_python中0o1010是多少

    python 0o_python中0o1010是多少python0o1010是多少?它以0开头,满足八进制的要求,是个八进制的数,下面来了解一下整数的四种表现形式:对于整数:有四种表现形式二进制:0,1满2进1八进制:0-7满8进1,用0开头表示十进制:0-9满10进1十六进制:0-9,A-F满16进1,用0x表示位(bit):存储信息的最小单位,表示一个二进制数字。字节(Byte):一个字节由8位二进制数字组成(1Byte=8bit)…

    2022年6月24日
    42
  • Java基础知识总结(2021版)「建议收藏」

    前言大家好,我是素小暖,2012年毕业,2016年通过培训转行java开发,今天2021年1月9日,转行之路跌跌绊绊,蓦然回首,已经满满的4年工作经验了?但感觉知识还是相当的匮乏,没自信,也许是努力程度还不够吧。很感谢CSDN,因为是它给了我学习的动力,之前写了一篇记录CSDN博客访问量的文章,也许大家感觉很幼稚,但真的很有用,很有效果,仿佛磕了药一样,努力学习,进步。2020年,是我较为成功的一年,工作上,跳了槽,涨了工资;学习上,啃了几本名著(EffectiveJava、重构改善既.

    2022年4月7日
    40
  • 数据平滑处理

    数据平滑处理

    2021年11月21日
    51
  • c绝对值函数图像_取绝对值(C、C++、js)

    c绝对值函数图像_取绝对值(C、C++、js)在计算过程中 如果要确保返回正整 一般都要使用绝对值 编程语言通常都会提供取绝对值方法 下面分别看看 C C js 如何取绝对值 一 C 取绝对值 1 方法 Math Ads intvalue 2 说明 除支持整型外 还支持 float double decimal sbyte short long 3 命名空间 System4 举例 Math Abs 5 8 输出 3Math

    2025年8月14日
    3
  • 怎么样解析二级域名

    怎么样解析二级域名

    2021年10月21日
    63
  • 奶妈教程之基于ADS的带通滤波器仿真「建议收藏」

    奶妈教程之基于ADS的带通滤波器仿真「建议收藏」基于ADS的带通滤波器教学1.试验参数 版本:ADS2021 带通频率范围:3.3GHz~3.8GHz 带阻频率范围:3.1GHz~4.0GHz 特征阻抗:Z=50Ohm2.试验步骤(1)打开ADS软件并新建工程,如图所示(2)建立原理图工程点击图中红圈所示的图标,建立原理图建立带通滤波器工程然后会进入这样一个界面点击DesignGuide下的Filter点击弹出界面下红圈所示的指令此时整个程序界面如图所示,继续点击红圈所示的符号放入设计界面中然后选择图中红圈窗

    2022年5月22日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号