json文件转Excel
生活随笔
收集整理的這篇文章主要介紹了
json文件转Excel
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
數(shù)據(jù)導(dǎo)出
1.node.js exceljs轉(zhuǎn)化插件
1.1需要引入
npm install --save exceljs
代碼如下
var Excel = require('exceljs');var start_time = new Date();var workbook = new Excel.stream.xlsx.WorkbookWriter({filename: './導(dǎo)出成功文件.xlsx' }); var worksheet = workbook.addWorksheet('Sheet');worksheet.columns = [{ header: '姓名', key: 'name' },{ header: '電話', key: 'tel' },{ header: '中獎(jiǎng)信息', key: 'name2' },{ header: '省市區(qū)', key: 'address' },{ header: '詳細(xì)地址', key: 'addressContent' }, ]; tel: var data = [{name:"大錘",tel:"110110",name2:"超級(jí)宇宙手辦",address:"中國(guó)省中國(guó)市中國(guó)",addressContent:"地球村"} ] var length = data.length;// 當(dāng)前進(jìn)度 var current_num = 0; var time_monit = 400; var temp_time = Date.now();console.log('開始添加數(shù)據(jù)'); // 開始添加數(shù)據(jù) for(let i in data) {worksheet.addRow(data[i]).commit();current_num = i;if(Date.now() - temp_time > time_monit) {temp_time = Date.now();console.log((current_num / length * 100).toFixed(2) + '%');} } console.log('添加數(shù)據(jù)完畢:', (Date.now() - start_time)); workbook.commit();var end_time = new Date(); var duration = end_time - start_time;console.log('用時(shí):' + duration); console.log("程序執(zhí)行完畢");其中 workbook 為 導(dǎo)出文件和路徑
data 為導(dǎo)出數(shù)據(jù)
columns 為前面的header 為導(dǎo)出到exel的頭 key值必須與數(shù)據(jù)對(duì)應(yīng)
在就一些語(yǔ)法其實(shí)內(nèi)容很簡(jiǎn)單 有興趣的可以學(xué)習(xí)下exceljs這個(gè)庫(kù)!
node.js啟動(dòng)
node server.js
2. 利用node-xls導(dǎo)出excel
2.1需要引入
npm i --save node-xlsx
'use strict'; /*** @name 訂單數(shù)據(jù)拉取* @version 1.0.0 * @author yj* @Time 2020年12月14日10:10:09*/const xlsx = require('node-xlsx'); const fs = require('fs');async function dataPull() {let tableData = [{ t_id: 1, nickname: "蒙牛", clipart1: 182, clipart2: 192, clipart3: 193, clipart4: 99, color1: 1, color2: 22, color3: 98 }, { t_id: 2, nickname: "伊利", clipart1: 182, clipart2: 192, clipart3: 193, clipart4: 99, color1: 1, color2: 22, color3: 98 }]const xlsx_test_data = [{name: 'm豆訂單統(tǒng)計(jì)表',data: [[`m豆訂單`],['id','昵稱','clipart1','clipart2','clipart3',"clipart4","color1","color2","color3",],]}];for (let i = 0; i < tableData.length; i++) {// 每一行let arr = [];// 每一列的數(shù)據(jù)t_idarr.push([tableData[i].t_id])arr.push([tableData[i].nickname])arr.push([tableData[i].clipart1])arr.push([tableData[i].clipart2])arr.push([tableData[i].clipart3])arr.push([tableData[i].clipart4])arr.push([tableData[i].color1])arr.push([tableData[i].color2])arr.push([tableData[i].color3])// console.log(tableData[i]);xlsx_test_data[0].data.push(arr);}const range0 = { s: { c: 0, r: 0 }, e: { c: 8, r: 0 } };let options = {'!merges': [range0] };// console.log("?????????",writeFile());const localPath = await writeFile('訂單統(tǒng)計(jì)表', xlsx_test_data, options);console.log(localPath); }//寫文件 function writeFile(name = "", data, options) {return new Promise((resolve, reject) => {try {let buffer = xlsx.build(data, options);// let tempDir = this.app.config.temp.dir;let tempfile = './' + name + new Date().getTime() + '.xlsx';fs.writeFile(tempfile, buffer, (err) => {if (!err) resolve(tempfile);});} catch (e) {console.log(e)reject(e);}}); }dataPull();雖然這幾種方法都可導(dǎo)出excel,但是我一直不會(huì)怎么去設(shè)置樣式!(網(wǎng)上看了很多種資源都是用xls-style)但是我一直不會(huì)用 如果有大佬知道,求賜教,謝謝謝謝謝謝謝!!!!!
總結(jié)
以上是生活随笔為你收集整理的json文件转Excel的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: alloca函数的风险_alloca的函
- 下一篇: U-boot移槙