HarmonyOS鸿蒙Next中有没有办法读取Excel表格中的数据
HarmonyOS鸿蒙Next中有没有办法读取Excel表格中的数据
【背景知识】 xlsx插件可以把html中的table元素或者json数据转换成表格后进行导出,也可以解析表格文件,将其转换成json格式的数据,更多可参考SheetJS官方文档。
【解决方案】 可以使用SheetJS,在H5页面使用,具体实现步骤如下:
- getRawFileContent获取rawfile文件下的excel文件,将其转换为字节数组:
async readExcel(fileName:string) {
try {
const resource: Uint8Array = await getContext().resourceManager.getRawFileContent(fileName)
const uint8Array = new Uint8Array(resource.buffer)
return Array.from(uint8Array) // 转换为普通数组供JS使用
} catch (e) {
console.error(`读取文件失败:${e}`)
return []
}
}
- registerJavaScriptProxy注入对象:
this.controller.registerJavaScriptProxy(this.testObjtest, 'ExcelBridge', ['readExcel'])
- 在H5页面调用HarmonyOS方法,接收传递的字节数组,并调用xlsx库解析:
async function readXlsContent(){
const byteArray = await ExcelBridge.readExcel('text.xlsx')
// 转换为Uint8Array
const u8 = new Uint8Array(byteArray)
// 使用SheetJS解析
const workbook = XLSX.read(u8, {type: 'array'})
// 获取第一个工作表
const sheet = workbook.Sheets[workbook.SheetNames[0]]
// 使用xlsx的utils.sheet_to_json等方法将工作表转换为JSON
const outdata = XLSX.utils.sheet_to_json(sheet)
console.log('outdata------:',outdata) // [{name:'张三',gender:'男'},{name:'李四',gender:'男'}]
}
- 在应用侧的消息端口上注册回调函数,接收H5侧发送过来的消息,具体可参考:应用与网页互发消息的示例。
更多关于HarmonyOS鸿蒙Next中有没有办法读取Excel表格中的数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
试试SheetJS库
// 楼主自行集成,假设已引入SheetJS库
import { readFile } from '@sheetjs/sheetjs';
async function readExcel(filePath: string) {
const fileContent = await fs.readFileSync(filePath); // 使用文件系统模块读取文件
const workbook = readFile(fileContent);
const sheet = workbook.Sheets[workbook.SheetNames];
const data = XLSX.utils.sheet_to_json(sheet); // 转换为JSON数据
console.log('Excel数据:', data);
}
仅进行预览可以使用Preview Kit(文件预览服务)为应用提供便捷的文件快速预览
参考地址
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/preview-introduction
如果需要进行更多操作可以使用
ohpm install [@archermind](/user/archermind)/exceljs
库地址
[https://ohpm.openharmony.cn/#/cn/detail/@archermind%2Fexceljs](https://ohpm.openharmony.cn/#/cn/detail/@archermind%2Fexceljs)
可以试试第三方库 [@archermind/exceljs](https://ohpm.openharmony.cn/#/cn/detail/@archermind%2Fexceljs)
HarmonyOS Next中可通过ArkTS的FileIO API读取本地Excel文件,但系统未内置Excel解析库。需集成第三方TS/JS解析库(如SheetJS)处理数据。具体步骤:使用FileIO获取文件后,调用解析库提取单元格数据。注意:Next版本暂不支持直接调用Android生态的解析工具。
在HarmonyOS Next中,可以通过集成第三方库(如Apache POI或类似的轻量级库)来读取Excel文件数据。由于HarmonyOS Next基于OpenHarmony生态,目前原生API暂不直接支持Excel操作,但可通过以下方式实现:
- 使用Java/Kotlin库:若开发环境支持,可引入Apache POI(需注意HarmonyOS的Java运行时兼容性)。
- JS/TS方案:通过OHTS的Native API调用C++库(如LibXL)或使用纯JS解析(仅适用于小文件)。
- 数据转换:先将Excel转为CSV或JSON格式,再用文件API读取(推荐跨平台兼容性)。
- 云端解析:将文件上传至服务器处理,通过网络接口返回数据。
需注意性能与依赖库的适配问题,建议测试目标设备的兼容性。