上一篇写的是导出单个excel,但是导出多个sheet 试了很多方法,没有成功,算了吧,那还是搞个原生的插件,一劳永逸,ok,下面介绍一下这么具体使用。
开源地址:https://gitee.com/codeceo_net/uniapp-excel-export-plugin
aar 包下载目录:uniapp-excel-export-plugin/build/outputs/aar/export_excel-release.aar,如果二开可以拉源码,如果有什么问题,请发布issues
接下来看看uniapp配置,先看目录结构如下:

package.json配置:
{
"name": "ExportExcelSdkPlugin",
"id": "ExcelSdkPlugin",
"version": "1.0.0",
"description": "excel导出",
"_dp_type":"nativeplugin",
"_dp_nativeplugin":{
"android": {
"plugins": [
{
"type": "module",
"name": "ExcelSdkPlugin",
"class": "com.routon.plsy.reader.sdk.export_excel.SdkInitModule"
}
],
"hooksClass": "com.routon.plsy.reader.sdk.export_excel.Sdk_AppProxy",
"integrateType":"aar",
"permissions":[],
"dependencies":[
"org.apache.poi:poi:5.2.3",
"org.apache.poi:poi-ooxml:5.2.3",
"org.apache.commons:commons-collections4:4.4"
],
"useAndroidX":true
}
}
}
本插件需要android的sdk版本,manifest.json 配置即可:
"minSdkVersion" : 26,
"targetSdkVersion" : 33
插件初始化,位置随意,看你心情:
// #ifdef APP-PLUS
const ExcelSdkPlugin = uni.requireNativePlugin('ExcelSdkPlugin');
//读写权限
ExcelSdkPlugin && ExcelSdkPlugin.requestPermission();
//#endif
插件调用具体调用:
let result = {
path:"保存目录,可选如果不填写,保存目录位置是应用下的file/xlsx/中,结果会返回,可以查看跟踪"
fileName:"haha.xlsx",
sheetNames:["sheet1","sheet2"],
//这里多个sheet 的头部
headers:[
["姓名","年龄","性别"],
["姓名","年龄","性别"]
],
datas:[
//这里多个sheet 的数据
//sheet1的
[
["sheet1-xiaobai0","12","男"],["sheet1-xiaobai2","11","男"],
],
//sheet2的
[
["sheet2-2xiaobai3","19","男"],["sheet2-2xiaobai4","19","男"]
],
]
}
ExcelSdkPlugin.generateExcel(result, res=>{
console.log("返回啦!==========="+res)
//{status:200,message:'消息',data:'保存地址'}
//200成功,0失败
//这里是string需要转换
let resJSON = JSON.parse(res)
uni.showToast({
title: res+"嘎嘎嘎",
duration: 2000,
icon:'none'
});
});
ok,结束,下面去创建自定义基座,然后运行。这里不说具体操作了,请查看其它文档

效果:

这里用了uni自带 uni.docment 函数,自动打开wps(设备已安装)

ok,就到这里了,如果有其他需求,可以更新该插件功能!