Templates 使用互操作Word从资源中打开Word模板

Templates 使用互操作Word从资源中打开Word模板,templates,file,interop,resources,Templates,File,Interop,Resources,因此,我在应用程序中将此word模板作为资源。 我想打开它来创建新的文档,但不知道怎么做 下面的代码显然不起作用,因为add方法需要文件路径(而不是资源字节[]对象。。。 object tFalse=false; 缺少对象=System.Reflection.missing.Value; Word.Application app=null; Word.Document文件=null; 对象模板=Resources.MyTemplate; document=app.Documents.Add(r

因此,我在应用程序中将此word模板作为资源。 我想打开它来创建新的文档,但不知道怎么做

下面的代码显然不起作用,因为add方法需要文件路径(而不是资源字节[]对象。。。

object tFalse=false;
缺少对象=System.Reflection.missing.Value;
Word.Application app=null;
Word.Document文件=null;
对象模板=Resources.MyTemplate;
document=app.Documents.Add(ref模板、ref-tFalse、ref缺失、ref缺失);

但是我如何以正确的方式访问这个资源文件呢?

我主要是这样做的。我忽略了中间的工作,只留下打开和关闭的部分。

private void ProcessWord()
{
缺少对象=System.Reflection.missing.Value;
对象只读=false;
对象isVisible=false;
对象文件名=“C:\\temp.dot”;
对象fileNameSaveAs=“C:\\temp.doc”;
对象fileFormat=WdSaveFormat.wdFormatRTF;
object saveChanges=WdSaveOptions.wdDoNotSaveChanges;
Microsoft.Office.Interop.Word.Application oWord=新的Microsoft.Office.Interop.Word.Application();
文件oDocTmp=oWord.文件;
oWord.Visible=false;
//以只读方式打开点文件
文档oDoc=oDocTmp.Open(ref文件名、ref缺失、ref只读、ref缺失、ref缺失、ref缺失、ref缺失、ref缺失、ref缺失、ref缺失、ref可见、ref缺失、ref缺失、ref缺失、ref缺失、ref缺失);
//…做些工作
//保存文档
oDoc.SaveAs(参考文件名称保存、参考文件格式、参考缺失、参考缺失、参考缺失、参考缺失、参考缺失、参考缺失、参考缺失、参考缺失、参考缺失、参考缺失、参考缺失、参考缺失、参考缺失、参考缺失);
//关闭打开的文档
oDoc.关闭(参考保存更改、参考缺失、参考缺失);
//辞职
oWord.Quit(ref saveChanges、ref missing、ref missing);
}
您还应该研究一些清理内存的方法,类似于:

GC.Collect();
GC.WaitForPendingFinalizers();
最终选举对象元帅(oWord);
最终电子对象(oDocTmp)元帅;

可能不是最佳做法,但它比以前更成功。

您可以将模板保存为
文件,并直接使用模板文件路径,如下所示:

object tmeplateFilePath = @"D:\YourTemplateFolder\YourTemplate.dot";
var wordApp = new Word.Application();
Word.Document doc = wordApp.Documents.Add(tmeplateFilePath);