C#word文档将现有word文件克隆为新文档
我想创建一个应用程序来填充C#Interop.Word库自动生成的模板文档。用户从现有文件中选择模板文档。我必须将此文档克隆到新文档(包括填充、边距和所有格式) 1.我尝试过使用InsertFile函数C#word文档将现有word文件克隆为新文档,c#,ms-word,interop,C#,Ms Word,Interop,我想创建一个应用程序来填充C#Interop.Word库自动生成的模板文档。用户从现有文件中选择模板文档。我必须将此文档克隆到新文档(包括填充、边距和所有格式) 1.我尝试过使用InsertFile函数 document = app.Documents.Add(); object missing = System.Reflection.Missing.Value; object start = 0; object end = 0; Word.Range range = document.Rang
document = app.Documents.Add();
object missing = System.Reflection.Missing.Value;
object start = 0;
object end = 0;
Word.Range range = document.Range(ref start, ref end);
range.InsertFile(template_file_name, ref missing, ref _true, ref missing, ref missing);
并在文档中填充模板。但是这个函数改变了模板中的一些格式
2.我试过使用复制和粘贴
app=new Word.Application();
src_doc=app.Documents.Open(template_file_name);
document=app.Documents.Add();
src_doc.Content.Copy();
document.Content.PasteSpecial(DataType:Word.WdPasteOptions.wdKeepSourceFormatting);
此代码保持格式正确。但粘贴后,更改值是有问题的。“src_文件”即使在关闭后仍保持打开状态
长话短说。需要将现有文档克隆为新文档
这可以通过向文档传递文件路径来实现。添加方法:
Word.Application _word = new Word.Application();
_word.Visible = true;
_word.WindowState = Word.WdWindowState.wdWindowStateMaximize;
Word.Document _doc = _word.Documents.Add(pathToExistingDocument);
这可以通过向文档传递文件路径来实现。添加方法:
Word.Application _word = new Word.Application();
_word.Visible = true;
_word.WindowState = Word.WdWindowState.wdWindowStateMaximize;
Word.Document _doc = _word.Documents.Add(pathToExistingDocument);
我不是专家,但你能不能把它复制成文件?您不必尝试克隆word文档,只需使用System.IO并在磁盘上创建此文件的副本,然后使用Interop打开即可?如果这不适用于您的要求,请道歉。此解决方案有效。但它会将文档作为现有文件打开。我需要将其作为新文档打开(以便用户可以将其保存到任何位置)。这里还有一个想法-将模板创建为
.dotm
模板,并在命令行上将模板作为参数打开word<代码>“C:\ProgramFiles(x86)\Microsoft Office\Office16\Winword.exe”/t“C:\Users\me\Documents\Custom Office Templates\myTemplate.dotm”如果可以将模板创建为工作模板格式,这应该可以完成您正在尝试的工作。是否可以将.docx
而不是.dotm
打开为模板使用文档。添加(templateFilePath)从dotm或dotx创建新的docx。我不是专家,但您不能将其复制为文件吗?您不必尝试克隆word文档,只需使用System.IO并在磁盘上创建此文件的副本,然后使用Interop打开即可?如果这不适用于您的要求,请道歉。此解决方案有效。但它会将文档作为现有文件打开。我需要将其作为新文档打开(以便用户可以将其保存到任何位置)。这里还有一个想法-将模板创建为.dotm
模板,并在命令行上将模板作为参数打开word<代码>“C:\ProgramFiles(x86)\Microsoft Office\Office16\Winword.exe”/t“C:\Users\me\Documents\Custom Office Templates\myTemplate.dotm”如果可以将模板创建为工作模板格式,这应该可以完成您正在尝试的操作。是否可以打开.docx
而不是将.dotm
作为模板使用文档。添加(templateFilePath)以从dotm或dotx创建新的docx。