目录
项目场景
在我们制作小程序项目的时候,会遇到需要导出数据库里的数据的情况,在完成了安装node-xlsx —>写入云函数—>部署云函数—>实现弹窗提示导出excel表格的url的步骤后,我们将url复制到浏览器中发现了一个问题,就是这个excel表格不是实时的。那么我们应该怎么解决这个问题呢?
问题描述
下面我不再赘述怎么样一键导出excel和弹窗提示url的等前提操作(这些在网上可以找到,如果有这方面的需求可留言,我将会进行补充),现在让我们专注于如果获取实时excel文件这个操作。
那么这里的“实时”是指什么意思呢?
实时excel文件是指:当你有新的记录出现在你的数据库集合里,距离你上次导出excel表格的url只有几分钟的时间,但是你需要再次导出excel表格时候你会发现导出的excel表格跟先前的表格是一样的(没有新增的记录),所以这个excel表格并不是实时的文件。那么我们应该如何解决呢?
原因分析
这里的excel文件下载链接延迟很高,不能实时更新excel里面的数据
解决方案
故采用文件下载链接拼接时间字符串的形式来达到可下载实时文件的目的
核心代码以及步骤
step1
首先在你的js文件中创建时间戳(下面代码的第三行)
onst db = wx.cloud.database()
const _ = db.command
const t = new Date().getTime().toString().slice(0, -3);
step2
将你excel的url地址与时间戳进行拼接(下面代码中的res.fileList[0].tempFileURL是延迟excel表格链接)
const finalUrl = `${res.fileList[0].tempFileURL}?${t}`
具体的拼接方法可参考:https://blog.youkuaiyun.com/sjn0503/article/details/74936613
完成上述操作后finalUrl里面的内容就是实时的excel表格链接了,你再去浏览器上查看就会发现它变成了实时的excel文件。并且你会发现在原来的url基础上后面多了?+一串数字。
题外话
如果有疑问欢迎大家留言讨论,你如果觉得这篇文章对你有帮助可以给我一个免费的赞吗?我们之间的交流是我最大的动力!