相关疑难解决方法(0)

使用OpenXml和C#复制Word文档

我使用Word和OpenXml在C#ASP.NET Web应用程序中提供邮件合并功能:

1)上传包含许多预定义字符串的文档以进行替换.

2)使用OpenXML SDK 2.0我打开Word文档,将mainDocumentPart作为字符串并使用Regex执行替换.

3)然后我使用OpenXML创建一个新文档,添加一个新的mainDocumentPart并将替换产生的字符串插入到这个mainDocumentPart中.

但是,新文档中的所有格式/样式等都将丢失.

我猜我可以单独复制和添加样式,定义,注释部分等来模仿原始文档.

但是有没有一种方法使用Open XML复制文档,允许我在新副本上执行替换?

谢谢.

c# ms-word openxml

10
推荐指数
3
解决办法
2万
查看次数

将文本从word文件复制到新单词

我正在从word文件中读取文本并从readed文本中替换一些文本.

var wordApp = new Microsoft.Office.Interop.Word.Application();
object file = path;

object nullobj = System.Reflection.Missing.Value;

var doc = wordApp.Documents.Open(ref file, ref nullobj, ref nullobj,
                                                 ref nullobj, ref nullobj, ref nullobj,
                                                 ref nullobj, ref nullobj, ref nullobj,
                                                 ref nullobj, ref nullobj, ref nullobj);
 doc.ActiveWindow.Selection.WholeStory();

doc.ActiveWindow.Selection.Copy();

IDataObject data = Clipboard.GetDataObject();
var text =data.GetData(DataFormats.Text);
Run Code Online (Sandbox Code Playgroud)

所以我有来自原始word文件的文本,现在我需要它传递给一个不存在的新word文件(New Text).

我试过了

 ProcessStartInfo startInfo = new ProcessStartInfo();
 startInfo.FileName = "WINWORD.EXE";
 Process.Start(startInfo);
Run Code Online (Sandbox Code Playgroud)

这将打开新的word文件,这个文件没有物理保存在文件系统中,这很好.但我不确定如何将文本值传递给这个新文件.

更新

运行上面的代码后,我尝试了

 var wordApp = new Microsoft.Office.Interop.Word.Application();            
 var doc = wordApp.ActiveDocument;
Run Code Online (Sandbox Code Playgroud)

提出 "此命令不可用,因为没有文档打开."

.net c# ms-word .net-4.0 office-interop

9
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×2

ms-word ×2

.net ×1

.net-4.0 ×1

office-interop ×1

openxml ×1