Вы можете использовать взаимодействие для запуска из шаблона .dot / x следующим образом:
using System;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Word;
namespace EditWordDotSO
{
class Program
{
static void Main(string[] args)
{
var applicationWord = new Microsoft.Office.Interop.Word.Application();
applicationWord.Visible = true;
Document doc = null;
try
{
doc = applicationWord.Documents.Add(@"path\to\your\a.dotx");
doc.Activate();
}
catch (COMException ex)
{
Console.Write(ex);
//dispose properly as shown below
}
}
}
}
Примечание. Вам необходимо добавить ссылку на COM к Microsoft.Office.Interop.Word
, привязанному к установленному MS Word.
Обновление: как уже упоминалось @CindyMeister, используйте
this.Application.Documents.Add(@"C:\Test\SampleTemplate.dotx");
вместо создания new Document()
.Ссылка: Как: программно создавать новые документы
PS: Блок finally { ... }
предназначен для закрытия документа и правильного расположения объектов COM. Зачем использовать наконец ?
Вот более сложный метод, вдохновленный этой публикацией:
finally {
doc.Close(null, null, null);
applicationWord.Quit();
if (doc != null)
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
if (applicationWord != null)
System.Runtime.InteropServices.Marshal.ReleaseComObject(applicationWord);
doc = null;
applicationWord = null;
GC.Collect(); // final cleanup
}
PPS: Это также возможнодобавить или изменить шаблон так:
doc = applicationWord.Documents.Add();
doc.set_AttachedTemplate(@"C:\Test\SampleTemplate.dotx");
doc.UpdateStyles();