H5将网页数据导出为Excel并可下载

在制作webapp中,遇到个要将数据导出为Excel的问题。我搜索了一下网上的方案,可以直接将HTML的表格导出为Excel文件,这些方法在电脑上确实是可行的,当时如果放到手机上导出的Excel根本不能下载,手机下载文件都是已网络链接的形式,直接导出的文件在手机上是获取不到的。

我搜遍网上的资料都没有发现有讲在手机上将网页数据导出Excel的,于是只能自己去摸索,要想在手机端导出Excel普通的直接导出是没用的,于是可行的方法就是将导出的流数据先上传到服务器再通过服务器的文件链接让手机进行下载。

将数据转换成Excel的流数据
要上传文件到腾讯云的对象存储中就需要先获取到文件的流数据。
这里可以用到一个插件:js-xlsx | https://github.com/SheetJS/js-xlsx

这里示例将json进行转换
var jsono = [{"五月":"1号","姓名": "小王","年龄": "18","性别":"男",},{"五月":"2号","姓名": "小明","年龄": "21","性别":"男",}
];
//传入jsono 进行数据处理
downloadExl(jsono)
var tmpDown; //导出的二进制对象function downloadExl(json) {var tmpdata = json[0];json.unshift({});var keyMap = [];for (var k in tmpdata) {keyMap.push(k);json[0][k] = k;} var tmpdata = [];//用来保存转换好的json json.map((v, i) => keyMap.map((k, j) => Object.assign({}, {v: v[k],position: (j > 25 ? getCharCol(j) : String.fromCharCode(65 + j)) + (i + 1)}))).reduce((prev, next) => prev.concat(next)).forEach((v, i) => tmpdata[v.position] = {v: v.v});var outputPos = Object.keys(tmpdata); //设置区域,比如表格从A1到D10var tmpWB = {SheetNames: ['mySheet'], //保存的表标题Sheets: {'mySheet': Object.assign({},tmpdata, //内容{'!ref': outputPos[0] + ':' + outputPos[outputPos.length - 1] //设置填充区域})}};tmpDown = new Blob([s2ab(XLSX.write(tmpWB, {bookType: (type == undefined ? 'xlsx':type),bookSST: false, type: 'binary'}//这里的数据是用来定义导出的格式类型))], {type: ""}); //创建二进制对象写入转换好的字节流
}

最后的 tmpDown 就是转换出来的Excel字节流数据
接下来将这个流数据上传到腾讯云的对象存储中就能获得文件的下载链接了

var filename="员工名单.xlsx";//文件名
cos.putObject({  Bucket: '',//储存桶名称Region: 'ap-guangzhou', //地区Key:filename,//文件名Body:tmpDown,   //元文件onProgress: function(progressData) {},
}, function(err, data) {//拼接上https:// 就是文件的下载链接//调用dlsc() 将长链接转成短链接dlsc("https://"+data.Location);btne.button('reset');
}); //将链接转成短链接,这里用的是百度的api
function  dlsc(url){var dlj =url; var ajax = new XMLHttpRequest();var token = "";//百度api token ajax.open('post','https://dwz.cn/admin/v2/create', 'true');ajax.setRequestHeader("Content-Type", "application/json");ajax.setRequestHeader("Token", token);ajax.send(JSON.stringify({  url: url  }));ajax.onreadystatechange = function () {//返回短链接if (ajax.readyState === 4 && ajax.status === 200) {var data=JSON.parse(ajax.responseText);dlj=data.ShortUrl;                        $("#xzlj").text(dlj);                     } }
}

这是最终返回的Excel下载链接,手机可以直接进行下载 我的手机 https://dwz.cn/USczufF6


高效率的聚合搜索:www.xiaoqiuss.cn

H5将网页数据导出为Excel并可下载相关推荐

  1. html5怎么导出表格,《网页 导出到 excel表格数据》 如何将网页表格导出到excel

    如何将网页数据输出为Excel或Word文件 1.保页 在浏览器中访标网页,执行菜单"文件"→"另",文件类型"网页,全部". 2.用WPS ...

  2. python 批量查询网页导出结果_python导出网页数据到excel表格-如何使用python将大量数据导出到Excel中的小技巧...

    如何用python把返回的html提取相应的内容到excel 下载扩展库 xlrd 读excle xlwt 写excle 直百度上搜就能下载 下载后使用 import xlrd 就读excle了 打开 ...

  3. 如何将网页内容保存到计算机中,如何将网站导出excel表格数据-如何把网页数据保存到EXCEL...

    网页上的表格数据怎么复制到excel 1.打开excel表格. 2.打开菜单"数据->"导入外部数据"->"新建 Web 查询",在&qu ...

  4. 百度指数常见php框架,怎么导出数据到excel表格-如何将百度指数数据导出到Excel表格...

    如何将百度指数数据导出到Excel表格 第一步:打开CAD.CAD命令行输入"Li"."选择对象"选需要提取坐标的多段线.回车. 第二步:将CAD文本框中的数据 ...

  5. php怎么将表格导出到excel表格,php怎么将excel表格数据-php 怎么把数据导出到excel表格...

    如何使用php实现将数据从excel表导入到mysql中? /** * @param array $data //二维数组 不是对象 * @param string $filename //导件 */ ...

  6. 查询php 输出表格,php输出excel表格数据-PHP如何将查询出来的数据导出成excel表格(最好做......

    PHP如何将查询出来的数据导出成excel表格(最好做... php 把数据导出excel表格有多种方法,使用 phpExcel 等,以下代码接通过 header 生成 excel 文件的代码示例: ...

  7. php 输入表格数据,怎样将导出数据输入Excel 表格-php 怎么把数据导出到excel表格...

    如何将word文档中的数据导入到excel表格中 方法如下: 1.首先,打开媒介工具"记事本",将word文件里需要导入的数据,复制粘贴到记事本当中,然后保存成为txt文件,本例中 ...

  8. 关于数据导出成excel表

    关于数据导出成excel表 咱们这里分享简单导出成excel表和筛选导出excel表,希望对各位有帮助,欢迎大家交流和点赞!!!! 我在这里使用的是一个导出工具类,如下: package cn.ms. ...

  9. 表格导出计算机,电脑怎么导出excel表格数据-如何将百度指数数据导出到Excel表格...

    系统没有导出功能,电脑表格里的数据有什么方法拿... 将网页表格数据导入到Excel中的方法: 第一步,将包括所需表格的网页打开,并按CTRL C把网址复制到剪贴板,以备下一步使用. 第二步,打开运行 ...

最新文章

  1. linux内核pwn,[内核pwn] 环境搭建
  2. 2020最详细安装Ubuntu指南
  3. ADN中国队参加微软Kinect他赢得了全国比赛三等奖,我们的创意项目与团队Kinect于Naviswork虚拟之旅...
  4. Java编写的统计字符代码
  5. 【Flink】 Flink JobManager HA 机制的扩展与实现
  6. 机器视觉烟包行业质量检测解决方案
  7. 使用插件扩展Docker
  8. vivado第三方编辑器的使用
  9. redis报错:ERR value is not an integer or out of range
  10. 从WINDOW管理器差异,看WINDOWS与LINUX设计思想的文化内涵不同
  11. c语言编程求pai的近似值,c语言:求π的近似值
  12. 渗透笔记之HackInOS
  13. 毛不易 胡同 伴奏 高品质定制纯伴奏
  14. 避坑:git在push本地文件到远程时,报错ailed to push some refs to https://xx/xx.git的解决办法
  15. 再贴一个Fleaphp相关的
  16. 子域名查询、DNS记录查询
  17. 扩展CUDA SDK 2.3 の convolutionSeparable
  18. fcntl(nListenId, F_SETFD, FD_CLOEXEC) 的作用
  19. 如何做一个基于python校园排课选课系统毕业设计毕设作品(Django框架)
  20. Druid时序数据库-安装部署Imply集群

热门文章

  1. 怎么使用代理服务器 怎么设置代理IP地址上网
  2. C语言模拟双色球系统开发
  3. 盘点全国各省市“城市商业银行”名单
  4. 图形可视化1:Seaborn之lmplot函数
  5. android转场动画总结
  6. C++之复合类型(一)
  7. 基于JQData的有效前沿及投资组合优化
  8. 基于深度学习的Wiki中文语料词word2vec向量模型
  9. php 百度语音生成下载,PHP利用百度语音接口,实现文字图文转语音播放
  10. 关于CSAPP的一些资料