ajax请求获得json,然后导出Excel文件
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.13.1/xlsx.full.min.js"></script>
</head>
<body>
<h2>The XMLHttpRequest Object</h2>
<button type="button" οnclick="loadDoc()">Request data</button>
<p id="demo"></p>
<script>
function loadDoc() {
//创建xmlhttprequest对象
const xhttp = new XMLHttpRequest();
xhttp.onload = function () {
//将ajax请求返回的文本转换为json 数组对象
const exportArr = JSON.parse(xhttp.responseText).data.pageInfo;
//获取对象中的key作为导出的Excel的表头
var bb = Object.keys(JSON.parse(xhttp.responseText).data.pageInfo[0]);
// 自定义下载的header,注意是数组中的数组哦
const Header = [bb];
// 官方文档中的描述:converts an array of arrays of JS data to a worksheet.
const headerWs = XLSX.utils.aoa_to_sheet(Header);
const ws = XLSX.utils.sheet_add_json(headerWs, exportArr, { skipHeader: true, origin: "A2" });
//新建空workbook,然后加入worksheet
const wb = XLSX.utils.book_new();
// 可以自定义下载之后的sheetname
XLSX.utils.book_append_sheet(wb, ws, "sheetName");
/* 生成xlsx文件 */
XLSX.writeFile(wb, "下载.xlsx");
}
xhttp.open("POST", "https://drp-store-apac-api.myoppo.com/drp/store/pc/web/doc/order/page/query");
//添加一些请求表头
xhttp.setRequestHeader("Content-type", "application/json");
xhttp.setRequestHeader("app-id", "41");
xhttp.setRequestHeader("token", "212f339e8eccff9021f825750f17f3b4b8a63f4e6b2d3007a6021c233e541ffe");
xhttp.setRequestHeader("x-authority-id", "161211");
//xhttp.responseType = "arraybuffer";
//请求的入参放在send方法里面
xhttp.send('{"pageSize":500,"pageNo":1}');
}
</script>
</body>
</html>