HarmonyOS鸿蒙Next中请问系统有能预览或者打开word/excel的方式吗

HarmonyOS鸿蒙Next中请问系统有能预览或者打开word/excel的方式吗 请问系统有能预览或者打开word/excel的方式吗,或者怎么实现打开支持word/excel的app

4 回复

请参考下方demo,如有问题这边再沟通。

import common from '@ohos.app.ability.common';
import fs from '@ohos.file.fs';
import { filePreview } from '@kit.PreviewKit';
import { BusinessError } from '@kit.BasicServicesKit';
import fileUri from '@ohos.file.fileuri';
let context = getContext(this) as common.UIAbilityContext;
let uiContext = getContext(this);
let fileInfo: filePreview.PreviewInfo = {
  // 文件预览信息,包含了文件标题名、uri以及文件类型(mimeType)
  title: '2.docx',
  uri:'file://com.example.api12demo/data/storage/el2/base/haps/entry/files/2.docx',
  // mimeType: 'application/pdf' // 文件(夹)的媒体资源类型,如text/plain
  // mimeType: 'application/vnd.ms-excel' // 文件(夹)的媒体资源类型,如text/plain
  mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' // 文件(夹)的媒体资源类型,如text/plain
};
function copyFile() {
  console.log("copyFile!")
  // let srcFileDescriptor = context.resourceManager.getRawFdSync("1.pdf");
  let srcFileDescriptor = context.resourceManager.getRawFdSync("2.docx");
  // 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.pdf";
  // let dstPath = pathDir + "/1.xls";
  let dstPath = pathDir + "/2.docx";
  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
  console.log('dstPath---',dstPath)
  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
    }
  }
  console.log('=========close=========')
  fs.close(dest.fd)
}
@Entry
@Component
struct Index {
  @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%')
  }
}

更多关于HarmonyOS鸿蒙Next中请问系统有能预览或者打开word/excel的方式吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,系统本身不直接提供内置的Word或Excel文件预览或打开功能。用户需要通过第三方应用或华为应用市场下载相关的办公软件,如WPS Office或微软Office,来打开和编辑这些文件格式。HarmonyOS Next支持通过HAP(Harmony Ability Package)安装第三方应用,这些应用可以处理常见的办公文档格式。开发者可以通过集成相应的API来实现文档的预览和编辑功能。

在HarmonyOS鸿蒙Next中,系统内置了文件管理器和文档查看器,支持预览和打开Word、Excel等常用办公文档。你可以通过文件管理器直接点击文档进行预览,或者使用第三方办公应用(如WPS Office)进行更全面的编辑和查看操作。此外,鸿蒙还支持跨设备无缝协作,方便在不同设备间共享和编辑文档。

回到顶部