c# - ASP.NET:修改和下载 docx 文件
问题描述
我有一个 docx 文件,我想根据网络用户输入进行修改。所以,用户在网页上提交表单后,我需要修改原来的docx文件,然后下载给用户。
我尝试将原始文件作为资源文件存储在我的项目中,但我无法以编程方式打开它。这就是我在后控制器中尝试过的:
using Microsoft.Office.Interop.Word;
...
Application app = new Application();
Document document = app.Documents.Open(Properties.Resources.___, ReadOnly: false);
但是我收到了一个System.Runtime.InteropServices.COMException (0x80020005 (DISP_E_TYPEMISMATCH))
我也不知道如何下载修改后的文件。在一个简单的控制台应用程序document.SaveAs2(newPath);
中工作,但它似乎不适用于下载。
(我什至不确定这整个方式是否可行。如果我不能使用Microsoft.Office.Interop.Word
这种方式,请告诉我。)
解决方案
如果您想操作 docx 文件,最好使用 OpenXML API 而不是 InterOP。请参阅https://docs.microsoft.com/en-us/office/open-xml/open-xml-sdk?redirectedfrom=MSDN
推荐阅读
- swift - 多个 UIView 上的adjustFontSizeToFitWidth,同时具有相同的最小字体大小(swift 4.2)
- twitter-bootstrap - Bootstrap col-xs-6(两列)总是堆叠。不会在 iPhone SE 上并排布局
- php - Laravel:当我使用 $request->all() 但在 fill($request->only('...')) 中工作时,填充()和更新()不起作用
- c# - 一种优雅地卸载 AppDomain 并在其中运行无限循环的方法
- android - Android MenuItem 以编程方式摇动文本
- database - 跨平台跨数据库跨语言系统描述数据的通用方式
- django - 使用 .first 限制 django 查询集导致 TypeError 在 /path/ 'Product' 类型的对象没有 len()
- r - 在 R 包中编写用于连接到 PostgreSQL 数据库的包装函数
- laravel - 在 Laravel Eloquent 中,如何在子查询中引用主查询
- python - 将 Api 从 Ajax 更新为 Python