使用TypeScript在Excel加载项中保存文件

kxkpmulp  于 2023-04-07  发布在  TypeScript
关注(0)|答案(1)|浏览(160)

我使用TypeScript中的Yeoman Generator创建了一个Excel加载项。该加载项提供了一些基本信息,例如通过单击按钮突出显示Excel的部分内容,调用外部API来处理单元格等。然而,当我尝试使用fs或文件保存程序创建和下载新文件时,没有错误消息,也没有下载任何内容。代码如下所示。

import { saveAs } from "file-saver";
import { Document, Packer, Paragraph, TextRun } from "docx";

export const docGenerator = async () => {
  // Documents contain sections, you can have multiple sections per document, go here to learn more about sections
  // This simple example will only contain one section
  const doc = new Document({
    sections: [
      {
        properties: {},
        children: [
          new Paragraph({
            children: [
              new TextRun("Hello World"),
              new TextRun({
                text: "Foo Bar",
                bold: true,
              }),
              new TextRun({
                text: "\tGithub is the best",
                bold: true,
              }),
            ],
          }),
        ],
      },
    ],
  });

  try {

    const blob = await Packer.toBlob(doc);
    console.log(blob);
    saveAs(blob, "example.docx");
    console.log("Document created successfully");
  } catch (error) {
    console.error(error);
  }
};

网络选项卡显示以下消息:enter image description here
我的问题是:是否可以在Office加载项(例如Excel加载项)中创建和保存本地文件?如果不能,原因是什么?是否有解决方法?
我尝试了文件系统和文件保存程序库来保存和下载文件,但据我所知,没有任何东西被保存,并且在控制台中没有错误消息。

kr98yfug

kr98yfug1#

这在Office加载项中无法完成。加载项是Web应用程序,它们面临与Web应用程序相同的安全限制。其中一个限制是Web应用程序无法访问计算机的本地文件系统,除非用于某些高度受限的用途,如保存Cookie。像fs这样的库用于本地Nodejs示例,而不是Web应用程序。

相关问题