uniapp,微信小程序之json数据导出excel xlsx

//json数据转xlsx
		 json2xls(XMLSheets,header){
			  console.log(XMLSheets)
			  console.log(header)
		     //XMLSheets 为Json数组, Header为字符串数组
		     // excel 头部
		      var XMLString = `
		      
		      `
		      XMLString += ``
		      XMLString += ``
		          // Table 头部
		          XMLString += ''//遍历header插入Frist Row, Header
		          XMLString+=''
		          header.forEach((hd, i)=>{
		            XMLString+=''+``+hd+''})
		          XMLString+=''// 遍历Data,插入数据Row// 检查是否有数据if(XMLSheets){ 
					   console.log(header)
					  XMLSheets.forEach((row)=>{// 遍历数组,插入行
					    XMLString +=''// 遍历Json,插入单元格for(var p in row){// Cell 头部
					      XMLString +=`${row[p]}`}
					   XMLString +=''})// 遍历 Cell}// Table 尾部
		          XMLString +='
'
// Worksheet 尾部 XMLString += '' return XMLString },
//导出xlsx
		tableToExcel(){
			let header = ["表头1","表头2","表头3","表头4"];//表头数据
		     let jsonData=[{a:0,b:1,c:2,d:3},{a:0,b:1,c:2,d:3},
		     {a:0,b:1,c:2,d:3},{a:0,b:1,c:2,d:3},];//自定义json数据
		     let fieldtable = "名字";//需要导出的文件名
		    let xlsdata=this.json2xls(jsonData,header);
		    const fsm = wx.getFileSystemManager();
		    fsm.writeFile({
		      filePath: wx.env.USER_DATA_PATH + '/' + fieldtable +'.xls',
		      data: xlsdata,
		      encoding: 'utf8',
		      success: res => {
				uni.showModal({
					title: '提示',
					content: '如遇到文档格式显示问题,建议您使用金山文档或PC端office打开',
					confirmText:'我知道了',
					showCancel:false,
					success: function (res) {
						if (res.confirm) {
							wx.openDocument({
							  filePath: wx.env.USER_DATA_PATH  + '/' + fieldtable + '.xls',
							  success: function(res) {
							    console.log('打开文档成功')
							  },
							  fail: function() {
							    console.log('打开失败');
							  }
							})
						} else if (res.cancel) {
							console.log('用户点击取消');
						}
					}
				});
		       
		 
		      },
		      fail: res => {
		        console.info(res)
		      }
		    })
		  },
    }

你可能感兴趣的:(vue,json,微信小程序,javascript)