可以使用filePreview,参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/preview-arkts-V5参考demo:import common from '@ohos.app.ability.common'; import fs from '@ohos.file.fs'; import { filePreview } from '@kit.PreviewKit'; import { BusinessError } from '@kit.BasicServicesKit'; let context = getContext(this) as common.UIAbilityContext; let uiContext = getContext(this); let fileInfo: filePreview.PreviewInfo = { // 文件预览信息,包含了文件标题名、uri以及文件类型(mimeType) title: '1.xlsx', uri: 'file://com.lvhui.myapplication/data/storage/el2/base/haps/entry/files/1.xlsx', mimeType: 'application/vnd.ms-excel' // 文件(夹)的媒体资源类型,如text/plain }; function copyFile() { console.log("copyFile!") // let srcFileDescriptor = context.resourceManager.getRawFdSync('蓝牙ble 模式的demo使用说明1.pdf'); let srcFileDescriptor = context.resourceManager.getRawFdSync('1.xls'); //这里填rawfile文件夹下的文件名(包括后缀) let stat = fs.statSync(srcFileDescriptor.fd) console.log(`stat isFile:${stat.isFile()}`); // 通过UIAbilityContext获取沙箱地址filesDir,以Stage模型为例 let pathDir = context.filesDir; console.log("path:", pathDir) let dstPath = pathDir + "/1.xls"; let dest = fs.openSync(dstPath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE) let bufsize = 4096 let buf = new ArrayBuffer(bufsize) let off = 0, len = 0, readedLen = 0 while (len = fs.readSync(srcFileDescriptor.fd, buf, { offset: srcFileDescriptor.offset + off, length: bufsize })) { readedLen += len fs.writeSync(dest.fd, buf, { offset: off, length: len }) off = off + len if ((srcFileDescriptor.length - readedLen) < bufsize) { bufsize = srcFileDescriptor.length - readedLen } } fs.close(dest.fd) } @Entry @Component struct Xlsx { @State message: string = '预览文件'; build() { Row() { Column() { Button('传到沙箱') .onClick(()=>{ copyFile() }) Button(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) .onClick(() => { filePreview.openPreview(uiContext, fileInfo).then(() => { console.info('openPreview success'); }).catch((err: BusinessError) => { console.error('openPreview failed, err = ' + err.message); }); }) } .width('100%') } .height('100%') } }
可以使用filePreview,参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/preview-arkts-V5
参考demo: