收藏
回答

wx.getFileSystemManager().writeFile真机无法写入汉字?

getExcelTest() {

    // 数据

    let data = [

      {

        id: 1,

        name: 'a'

      }, {

        id: 2,

        name: 'b'

      }, {

        id: 3,

        name: 'c'

      }]

    let sheet = []

    // 表头

    let title = ['序号', '姓名']

    sheet.push(title)

    // 数据

    data.forEach(item => {

      let rowcontent = []

      rowcontent.push(item.id)

      rowcontent.push(item.name)

      sheet.push(rowcontent)

    })


    // XLSX插件使用

    var ws = XLSX.utils.aoa_to_sheet(sheet);

    var wb = XLSX.utils.book_new();

    XLSX.utils.book_append_sheet(wb, ws, "导出信息");

    var fileData = XLSX.write(wb, {

      bookType: "xlsx",

      type: 'base64'

    });


    // 保存的本地地址

    console.log(wx.env.USER_DATA_PATH)

    let filePath = `${wx.env.USER_DATA_PATH}/导出信息.xlsx`


    // 写文件

    const fs = wx.getFileSystemManager()

    fs.writeFile({

      filePath: filePath,

      data: fileData,

      encoding: 'base64',

      success(res) {

        console.log(res)

        const sysInfo = wx.getSystemInfoSync()

        // 导出

        if (sysInfo.platform.toLowerCase().indexOf('windows'>= 0{

          // 电脑PC端导出

          wx.saveFileToDisk({

            filePath: filePath,

            success(res) {

              console.log(res)

            },

            fail(res) {

              console.error(res)

              util.tips("导出失败")

            }

          })

        } else {

          // 手机端导出

          // 打开文档

          wx.openDocument({

            filePath: filePath,

            success: function (res) {

              console.log('打开文档成功')

            },

            fail: console.error

          })

        }


      },

      fail(res) {


        console.error(res)

        if (res.errMsg.indexOf('locked')) {

          wx.showModal({

            title: '提示',

            content: '文档已打开,请先关闭',

          })

        }


      }

    })


  }

代码如上,只是测试阶段,所以数据很简单,模拟器就是正常的,如下图

但是真机就错了,如下图,为什么真机会错呢?

回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容