当前位置:   article > 正文

uniapp 在手机上导出excel

uniapp 在手机上导出excel

1.创建excelDev.js文件

  1. export default {
  2. exportExcel(fileData, documentName = 'excel') {
  3. plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, function(fs) {
  4. let rootObj = fs.root
  5. let fullPath = rootObj.fullPath
  6. console.log("开始导出数据")
  7. // 创建文件夹
  8. rootObj.getDirectory(documentName, {
  9. create: true
  10. }, function(dirEntry) {
  11. // 创建文件,防止重名
  12. let fileName = new Date().getTime()
  13. console.log(fileName)
  14. dirEntry.getFile(`${fileName}.xlsx`, {
  15. create: true
  16. }, function(fileEntry) {
  17. fileEntry.createWriter(function(writer) {
  18. writer.onwritestart = (e) => {
  19. uni.showLoading('正在导出')
  20. }
  21. writer.onwrite = (e) => {
  22. // 成功导出数据
  23. uni.hideLoading()
  24. setTimeout(() => {
  25. uni.showToast('导出成功')
  26. const path =
  27. `file://${fullPath}${documentName}/${fileName}.xlsx`
  28. console.log('文件位置:', path)
  29. // 打开文件
  30. uni.openDocument({
  31. filePath: path,
  32. success: res => {
  33. console.log('打开文档成功',
  34. res)
  35. },
  36. fail: e => {
  37. console.log('打开失败', e)
  38. }
  39. })
  40. }, 500)
  41. }
  42. // 写入内容
  43. writer.write(fileData)
  44. }, function(e) {
  45. console.log(e.message)
  46. })
  47. })
  48. })
  49. })
  50. }
  51. }

2.可在main.js文件中引入(单独去页面引入也可以)

import excelDev from './excelDev.js'

// 挂载到vue原型上

Vue.prototype.$excelDev = excelDev

3.在相应页面调用

  1. // 导出excel
  2. tableToExcel() {
  3. //要导出的json数据
  4. // this.jsonData = [{"id":"2","content":"你好!","fromId":"123","toId":"321","flag":"1"}]
  5. let worksheet = 'sheet1'
  6. let str = '<tr><td>id</td><td>content</td><td>fromId</td><td>toId</td><td>flag</td></tr>'
  7. //循环遍历,每行加入tr标签,每个单元格加td标签
  8. for (let i = 0; i < this.jsonData.length; i++) {
  9. str += '<tr>'
  10. for (let key in this.jsonData[i]) {
  11. //增加\t为了不让表格显示科学计数法或者其他格式
  12. str += `<td>${ this.jsonData[i][key] + '\t'}</td>`
  13. }
  14. str += '</tr>'
  15. }
  16. //下载的表格模板数据
  17. let template = `<html xmlns:o="urn:schemas-microsoft-com:office:office"
  18. xmlns:x="urn:schemas-microsoft-com:office:excel"
  19. xmlns="http://www.w3.org/TR/REC-html40">
  20. <head><!--[if gte mso 9]><xml encoding="UTF-8"><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
  21. <x:Name>${worksheet}</x:Name>
  22. <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
  23. </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
  24. </head><body><table>${str}</table></body></html>`
  25. //下载模板
  26. this.$excelDev.exportExcel(template, 'excel')
  27. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/795394
推荐阅读
相关标签
  

闽ICP备14008679号