微信小程序导出zip、excel、word、png到手机

1、需要使用的方法:
	wx.request(); //发请求调用接口
	wx.showModal();//打开弹框进行展示
	wx.setClipboardData();//复制文本的数据
	wx.downloadFile();//文件下载的方法
	wx.getFileSystemManager().saveFile();//保存数据
	wx.saveImageToPhotosAlbum();//保存数据到相册
2、在微信小程序中,用户使用的手机分苹果手机和安卓手机;安卓手机保存文件我们是可以找到在手机磁盘中找到文件的,苹果手机是找不到指定文件的;那么苹果手机则是返回文件的路径提供可复制功能在浏览器进行打开下载;
3、另外目前在保存zip、word、excel目前采用的是直接已图片的形式保存在手机相册中,然后通过修改文件的后缀来实现的(图片资源可以直接导出到手机相册);
4、多的话就不说了,直接上在实际开发中的源码:
  // 导出zip数据
  exportProject(){
    var strCode = ''
    var arr = JSON.parse(JSON.stringify(this.data.dataList))
    arr.length>0 && arr.forEach((item,index) =>{
      if(item.checked) {
        strCode += `${item.id},`
      }
    })
    // 有勾选导出勾选 没有勾选导出所有的数据
    if(strCode) {
      strCode = strCode.substr(0,strCode.length-1)
    } else {
      wx.showToast({
        title: '请先勾选在进行导出!',
        icon: 'none',
        duration: 2000
      })
      return
    }
    wx.showLoading({
      title: '保存中...'
    })
    wx.request({
      url: `http://localhost:6666/upload/upload`, //下载文件的接口
      method: 'GET',
      header: {
        'Content-Type': 'application/json', // 默认值
        'accessToken': accessToken
      },
      success(resUrl){
      	//首先判断手机的类型是ios还是Android 判断的方法微信小程序有api进行调用
        if(wx.getStorageSync('flagIosOrAndroid')  == 'ios') { //苹果手机直接弹出地址进行复制操作
          wx.hideLoading()
          wx.showModal({
            title: '下载地址',
            content: resUrl,
            showCancel: false,
            confirmText: '复制' ,
            success (res) {
              if (res.confirm) {
                wx.setClipboardData({//复制文本
                  data: resUrl.data,
                  success: function (res) {
                    wx.showToast({
                      title: '复制成功',
                      icon:"none",
                      mask:"true"//是否设置点击蒙版,防止点击穿透
                    })
                  }
               })
              }
            }
          })
        } else { //安卓手机将文件保存为png 导出之后改后缀
          wx.downloadFile({
            url: `${resUrl}`, //仅为示例,并非真实的资源
            success (resCode) {
              wx.hideLoading()
              var savePath = wx.env.USER_DATA_PATH + `/Zip.png`;
              wx.getFileSystemManager().saveFile({
                tempFilePath: resCode.tempFilePath||resCode.filePath,
                filePath:savePath,
                success: function (res){
                  //保存图片
                  wx.saveImageToPhotosAlbum({
                    filePath:res.savedFilePath,
                    success(res) {
                      //这里可以出个弹窗,给用户提醒,让他去文件管理器里面找到后重命名
                      wx.showModal({
                        title: '文件保存成功',
                        content: `请在文件管理器找到Zip.png修改后缀为zip`,
                        showCancel: false,
                        confirmText: '确定' ,
                        success (res) {
                        }
                      })
                    }
                  })
                },
              })
            },
            fail(err){
              wx.hideLoading()
              wx.showToast({
                title: '文件下载失败!',
                icon: 'none',
                duration: 2000
              })
            }
          })
        }
      },
      fail(err) {
        wx.hideLoading()
        wx.showToast({
          title: '文件获取失败!',
          icon: 'none',
          duration: 2000
        })
      }
    })
  },
总结:目前采用的是这种方法来进行导出到手机的 ,示例为导出zip的例子;导出excel和word方法都类似,导出图片的也是类似;有其他的好的方法也可以给我推荐推荐,我们一起学习,互相交流。觉得有用记得点赞加关注哦,方便下次用的时候不迷路。
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在微信小程序导出Excel表格上加水印,可以使用以下步骤: 1. 在Excel中创建一个水印图片或文字,并将其保存为PNG格式的文件。 2. 在微信小程序中,使用wx.downloadFile()方法下载Excel文件。 3. 使用js-xlsx库将下载Excel文件转换为可编辑的对象。 4. 在对象中添加水印。具体做法可以是在单元格中添加图片或文本,或在单元格的背景中添加图片。 5. 使用js-xlsx库将编辑后的对象转换回Excel文件。 6. 使用wx.saveFile()方法保存编辑后的Excel文件。 以下是一个示例代码片段,演示如何在微信小程序中添加水印: ```javascript const XLSX = require('xlsx') // 下载Excel文件 wx.downloadFile({ url: 'http://example.com/example.xlsx', success: function(res) { // 将文件读取为可编辑对象 const workbook = XLSX.read(res.tempFilePath, { type: 'file' }) const sheetName = workbook.SheetNames[0] const worksheet = workbook.Sheets[sheetName] // 添加水印图片 const watermark = wx.getFileSystemManager().readFileSync('watermark.png', 'base64') const watermarkImage = XLSX.utils.sheet_add_image(worksheet, watermark, { tl: { col: 0, row: 0 }, br: { col: 5, row: 5 } }) // 保存编辑后的Excel文件 const editedWorkbook = XLSX.write(workbook, { bookType: 'xlsx', type: 'binary' }) wx.saveFile({ tempFilePath: window.URL.createObjectURL(new Blob([editedWorkbook], { type: 'application/octet-stream' })), success: function(res) { console.log('Excel文件已保存:', res.savedFilePath) } }) } }) ``` 请注意,上述代码中的水印图片需要您自己创建,并将其保存为PNG格式的文件。此外,代码中还假定Excel文件只有一个工作表,如果文件中有多个工作表,则需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值