我使用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加载项)中创建和保存本地文件?如果不能,原因是什么?是否有解决方法?
我尝试了文件系统和文件保存程序库来保存和下载文件,但据我所知,没有任何东西被保存,并且在控制台中没有错误消息。
1条答案
按热度按时间kr98yfug1#
这在Office加载项中无法完成。加载项是Web应用程序,它们面临与Web应用程序相同的安全限制。其中一个限制是Web应用程序无法访问计算机的本地文件系统,除非用于某些高度受限的用途,如保存Cookie。像fs这样的库用于本地Nodejs示例,而不是Web应用程序。