Excel表格网

前端接excel流文件(前端实现导出excel文件流)

来源:www.0djx.com  时间:2022-11-13 05:51   点击:212  编辑:表格网  手机版

1. 前端实现导出excel文件流

word前端的导出的话,还真没做过,excel倒是有很多例子,不过网上兼容性都不是太好,实在不行就用后端导出。

2. java返回excel文件流

步骤如下:

1、首先,我们打开一个excel文档,然后我们选中的单元格,之后我们点击数据;

2、然后我们点击分列;

3、之后我们点击下一步;

4、 然后我们点击选择逗号,之后我们点击下一步;

5、然后我们点击完成;

6、最终结果,这样我们就将单元格中的数据拆分开来了。EXCEL就可以随机返回指定范围某个单元格的内容了,即可返回某个位置的值。

3. 文件流怎么返回给前端

返回舱进入大气层很有讲究,如果角度太大,那么,飞船速度就不容易控制,如果角度太小,会被稠密的大气层给弹回,就像打水漂那样

此时返回舱高度在100公里左右,已约七公里每秒的速度进入地球大气层,这时候,返回舱与大气层剧烈摩擦,在地面上看,就像是流星一般返回舱前端的隔热大顶温度为2200度至2600度,这个温度都与航空发动机中燃烧室的温度相当

返回舱通过烧蚀材料来对抗高温,需要控制好姿态,保持受热负荷防热设计,此时,返回舱也会背等离子体层包裹形成黑脏,当高度下降40公里时,黑障才会消失,在此之前,地面与返回舱的通信中断

4. 前端导出数据

vs随机生成类怎么在前端显示数据库 用jdbc连接数据库,然后将获取的数据拼装到sql语句里, 执行sql就可以插入数据了

5. 前端实现导出excel文件流量

文件异步导出的功能步骤如下:1、前端触发下载功能按钮,AJAX向后台发送请求下载;

2、后台收到请求后,把数据处理流程放入线程池,并返回success告知请求成功(有异常返回fail);

3、AJAX返回值如果是成功,则向后台不断请求下载状态(后台需要提供获取状态的接口);

4、当下载状态为success时,发起导出文件(后台提供接口,从服务器上获取文件并以文件流形式导出Excel,导出成功并更新状态为finish);

5、当下载状态为finish或其他错误状态,停止向后台请求获取状态。

6. 前端实现导出excel文件流程图

打开Excel。

2.

选中你想要对齐文字的单元格。

3.

单击鼠标右键,点击【设置单元格格式】。

4.

在弹出的对话框中点击【对齐】。

7. 后端导出excel到前端

GET请求和POST请求要看情况而定

GET请求方式是比较简单的,简单的处理前端只需要通过一个a标签就能实现导出或下载。

但是使用GET请求的需要考虑:

检索条件多不多,其次就是如果检索条件拼接在请求URL上会不会超过请求URL的最大长度。如果请求URL的长度超过浏览器的限制长度,浏览器将会将请求自动截断。

GET请求适用于导出所有数据或者是有个把检索条件并且检索条件长度不是特别长的。总之简单导出使用GET请求还是很香的!

POST请求的方式做导出比较的麻烦,需要前后端配合来使用,为了确保更好的用户体验(在用户点击导出或下载后,可以看到文件的下载进度),通过流的方式来实现导出或下载。

后端将处理好的数据存储在Excel表格中,读取Excel表格,以流的方式响应给前端;

前端通过Blob类型接收,通过window.URL.createObjectURL()创建源路径,使用document文档对象创建一个a标签;为a标签添加href属性和值(值就是源路径),为a标签设置download属性和值(值就是被下载的文件名),将指定a标签节点加到document.body的末尾,最后为a标签设置一个自触发的点击事件。

POST请求最适用于检索条件多的场景

8. 前端数据导出为Excel

背景

在学习微信小程序的过程中,需要导出excel文件数据,可是却没有后台服务器,所以只能够想着使用纯前端去导出excel

使用插件:excel-export

导出思想

将数据封装成excel文件

将excel文件上传到云存储中

将云存储的excel文件以图片的格式下载到本地

修改图片文件后缀为xlsx,成为excel文件

操作

将数据封装成excel文件;将excel文件上传到云存储中

建立云函数(我的云函数名称:uploadexportfile),打开云函数终端,安装excel-export插件

// 云函数入口文件

const cloud = require('wx-server-sdk')

const nodeExcel = require('excel-export');

const path = require('path');

cloud.init()

// 云函数入口函数

exports.main = async (event, context) => {

var tableMap = {

styleXmlFile:path.join(__dirname,"styles.xml"),

name: Date.now()+"-export",

cols: [],

rows: [],

}

var tableHead = ["编号", "名称", "生日", "年龄"];

//添加表头

for(var i=0;i<tableHead.length;i++){

tableMap.cols[tableMap.cols.length]={

caption:tableHead[i],

type:'string'

}

}

//表体:伪数据

const tableList = [

{编号:0,名称:'张三',生日:'2019-5-1',年龄:20},

{编号:1,名称:'李四',生日:'2019-5-1',年龄:45}

]

//添加每一行数据

for(var i=0;i<tableList.length;i++){

tableMap.rows[tableMap.rows.length]=[

tableList[i].编号,

tableList[i].名称,

tableList[i].生日,

tableList[i].年龄

]

}

//保存excelResult到相应位置

var excelResult = nodeExcel.execute(tableMap);

var filePath = "outputExcels";

var fileName = cloud.getWXContext().OPENID + "-" + Date.now()/1000 + '.xlsx';

//图片上传到云存储

return await cloud.uploadFile({

cloudPath: path.join(filePath, fileName),

fileContent: new Buffer(excelResult,'binary')

}).then(res=>{

console.log(res.fileID);

return res;

}).catch(err=>{

});

}

DOWNLOAD

//导出excel

function exportFile(dataHeader,dataList){

wx.showLoading({

title: '正在导出',

});

console.log(dataHeader);

console.log(dataList);

wx.cloud.callFunction({

name:'uploadexportfile',

data:{

dataHeader:dataHeader,

dataList:dataList

}

}).then(res=>{

const fileID = res.result.fileID;

//下载文件

wx.cloud.downloadFile({

fileID: fileID

}).then(res1 => {

this.saveFileToPhotosAlbum(res1);//保存文件到相册

this.delCloudFile(fileID);//删除云存储文件

}).catch(error => {

// handle error

})

}).catch(err1=>{

});

}

//保存文件到本地相册

function saveFileToPhotosAlbum(res){

//授权

this.writePhotosAlbumAuth();

// 保存文件

var saveTempPath = wx.env.USER_DATA_PATH + "/exportFile"+new Date().getTime()+".jpg";

wx.saveFile({

tempFilePath: res.tempFilePath,

filePath: saveTempPath ,

success:res1=> {

//获取了相册的访问权限,使用 wx.saveImageToPhotosAlbum 将图片保存到相册中

wx.saveImageToPhotosAlbum({

filePath: saveTempPath ,

success: res2 => {

//保存成功弹出提示,告知一下用户

wx.hideLoading();

wx.showModal({

title: '文件已保存到手机相册',

content: '文件位于tencent/MicroMsg/WeiXin下 \r\n将保存的文件重命名改为[ .xlsx ]后缀即可正常打开',

confirmColor: '#0bc183',

confirmText: '知道了',

showCancel: false

});

},

fail(err2) {

console.log(err2)

}

})

}

});

}

//删除云存储文件

function delCloudFile(fileID){

const fileIDs=[];

fileIDs.push(fileID);

//删除云存储中的excel文件

wx.cloud.deleteFile({

fileList: fileIDs,

success: res4 => {

// handle success

console.log(res.fileList);

},

fail: console.error

})

}

//上传单个文件

function uploadSingleFile(cloudPath,filePath){

wx.cloud.uploadFile({

cloudPath: cloudPath, // 上传至云端的路径

filePath: filePath, // 小程序临时文件路径

success: res => {

// 返回文件 ID

console.log(res.fileID)

},

fail: console.error

})

}

//微信图片保存到本地相册授权

function writePhotosAlbumAuth(){

wx.getSetting({

success(res) {

if (!res.authSetting['scope.writePhotosAlbum']) {

wx.authorize({

scope:'scope.writePhotosAlbum',

success() {

console.log('授权成功')

}

})

}

}

})

}

module.exports={

uploadSingleFile:uploadSingleFile,

exportFile:exportFile,

saveFileToPhotosAlbum:saveFileToPhotosAlbum,

delCloudFile:delCloudFile,

writePhotosAlbumAuth:writePhotosAlbumAuth

}

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片