更新记录

1.0.0(2024-12-23)

v1.0.0 首发


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.31,Android:6.0,iOS:不支持,HarmonyNext:不支持 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

bsx-saveas-api 文件或数据另存为 UTS API插件

重要

UTS API插件,暂仅支持Android 端!! 如果另存为文件需要保存到外部目录的话,需要配置权限清单!!! 参考官方权限清单配置!

官方开发文档

UTS API插件

作者

aoaobaba 傲傲爸爸~

介绍

为了回应群友的需要,将json数据导出为excel文件,而开始做这个API插件;首发版本,暂时完成将JSON字符串导出为csv格式,Excel一样能打开。其他格式,例如xls\xlsx等,实际上也能做,因时间问题暂且放着。另外,此API也考虑后续导出为pdf 等功能,有时间再做!

新手上路!大佬们,手下留情!

v1.0.0功能

  • [X] 单JSON数组导出为csv
  • [X] 自定义表头导出为csv (单JSON对象提供定义表头)
  • [X] 暂只支持一维表格 (即一张表,表头json对象和数据json数组)
  • [X] 多个存储位置提供指定(files目录、documents目录、downloads目录。外部存储 需要权限!!!)
  • [X] 自定义文件夹(如果不存在则自动创建)
  • [X] 非法字符检测(文件名或文件夹)
  • [X] 内置动态权限申请(如果启用,前提要配置权限清单)
19:24:55.173 CSV导出成功--------- /storage/emulated/0/Download/testSaveas/testSaveasFile.csv
19:24:55.223 ‍[⁠BsxSaveasApiResult⁠]‍ {filePath: "/storage/emulated/0/Download/testSaveas/testSaveasFile.csv", message: "另存为成功.", status: "succeed"} at pages/bsx-saveas-api/bsx-saveas-api.uvue:57
19:24:55.223 Shared----------------------------success at pages/bsx-saveas-api/bsx-saveas-api.uvue:68
19:24:55.256 ‍[⁠BsxSaveasApiResult⁠]‍ {filePath: "/storage/emulated/0/Download/testSaveas/testSaveasFile.csv", message: "另存为成功.", status: "succeed"} at pages/bsx-saveas-api/bsx-saveas-api.uvue:87

类型

bsxSaveasStorageType 存储位置

DOCUMENT\DOWNLOAD 时需要外部存储写权限!!!

enum bsxSaveasStorageType {
    FILES = "FILES",
    DOCUMENT = "DOCUMENT",
    DOWNLOAD = "DOWNLOAD"
}
bsxSaveasFileSuffix 文件后缀
enum bsxSaveasFileSuffix {
    CSV = ".csv"
}
BsxSaveasExcelOptions 导出为Excel操作类型
type BsxSaveasExcelOptions = {
    storageType ?: bsxSaveasStorageType
    fileSuffix ?: bsxSaveasFileSuffix
    dynamicReqPermission: boolean
    dirName : string
    fileName : string
    dataJson : string
    headerJson : string
    success ?: (res : BsxSaveasApiResult) => void
    fail ?: (res : BsxSaveasApiFail) => void
    complete ?: (res : any) => void
}
BsxSaveasApiResult 同步API操作结果
type BsxSaveasApiResult = {
    status : string  // failed or succeed
    filePath : string,
    message : string
}
bsxSaveasExcelApi 另存为Excel csv格式API
function (options : BsxSaveasExcelOptions)

使用

  1. 导入插件到项目
  2. uvue页面模板中导入相关类型和API

    // 导入api
    import { bsxSaveasStorageType, bsxSaveasFileSuffix, BsxSaveasExcelOptions, BsxSaveasApiResult, bsxSaveasExcelApi } from  '@/uni_modules/bsx-saveas-api'
    1. 需要的地方调用
    2. 需要注意,如果你想得到一个有序的(按源json key顺序生成的表格)需要手动添加对象。不要直接定义字面量,否则 导出表格会乱序哦~

      const saveasExcel = () => {
      
      let headerjson:UTSJSONObject = {} 
      headerjson["班级"] = '自定义字段一'
      headerjson["年龄"] = '自定义字段二'
      headerjson["成绩"] = '自定义字段三'
      
      let datajson : UTSJSONObject[] = []
      let row:UTSJSONObject = {}
      row["班级"] = '三年五班'
      row["年龄"] = 6
      row["成绩"] = 90
      datajson.add(row)
      
      console.log(JSON.stringify(datajson))
      let options = {
          storageType: bsxSaveasStorageType.DOWNLOAD,  // 文件存储位置
          fileSuffix: bsxSaveasFileSuffix.CSV, // v1.0.0 暂只支持excel csv格式
          dynamicReqPermission: false,  // 是否动态权限处理 如果存储位置在应用外部存储时 需要权限 这里代码可动态申请权限
          dirName: 'testSaveas',  // 自定义文件夹
          fileName: 'testSaveasFile', // 文件名称
          dataJson: JSON.stringify(datajson),  // 需要导出的json数据
          headerJson: JSON.stringify(headerjson), // 定义的json 表头
          success: (res : BsxSaveasApiResult) => {
              console.log(res)
              // 成功时
          },
          fail: (res : any) => {
              console.log(res)
              // 失败时
          },
          complete: (res : any) => {
              console.log(res)
              // 完成时
          },
      } as BsxSaveasExcelOptions
      
      bsxSaveasExcelApi(options)
      }

权限

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest>

tips

  1. 重要!!!!! 如果另存文件位置在外部存储目录,需要配置权限清单
  2. 引入查询相关类型后,界面会有代码提示可选录入

谢谢!

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问