在C#中创建,插入文本并保存Word文档

时间:2017-07-03 14:23:59

标签: c# ms-word office-interop

我发现大量有用的文档围绕创建单词doc的实例,插入所有方式的文本和格式,但找不到任何东西来保存尚未创建和编程的文档。

基本上我想创建一个docx文件,并用富文本框中的文本填充它。使用我在How to Insert text in the end of the document找到的代码,如果我第一次创建文档,我就能实现这一点。但是,尽管建议使用_document.SaveAs()(不存在 - 版本差异我猜)或.Save()据说提示使用SaveAs对话框,如果文件不存在,我总是会遇到类型不匹配错误。所以如果我预先创建要使用的文件,这是工作代码:

OpenFileDialog SDO = new OpenFileDialog();
SDO.ShowDialog();

Microsoft.Office.Interop.Word._Application oWord;
object oMissing = Type.Missing;
oWord = new Microsoft.Office.Interop.Word.Application();
oWord.Visible = false;

oWord.Documents.Open(SDO.FileName);

oWord.Selection.TypeText(richTextBox1.Text);
oWord.ActiveDocument.Save();
oWord.Quit();

现在可以假设删除OpenFileDialogue Documents.Open的行会在某种程度上保存用C#创建的新文件,但即使是:

Microsoft.Office.Interop.Word._Application oWord;
object oMissing = Type.Missing;
oWord = new Microsoft.Office.Interop.Word.Application();
oWord.Visible = false;

SaveFileDialog SD = new SaveFileDialog();

SD.Filter = "Word File |*.docx";
SD.Title = "Save File";
SD.ShowDialog();


oWord.Documents.Save(SD.FileName,WdNewDocumentType.wdNewXMLDocument);

oWord.Selection.TypeText(richTextBox1.Text);
oWord.ActiveDocument.Save();
oWord.Quit();

我见过的其他例子打开文档,以便您可以自己保存,但我需要保存,除了选择文件名之外没有任何人为干预。

任何帮助表示赞赏,也可以选择像尖顶和宝石这样的第三方dll,因此不能选择:(

如果有人有一个简单的例子来创建和保存在程序运行之前不存在的单词doc,那么就很有必要。

2 个答案:

答案 0 :(得分:4)

The Microsoft MSDN documentation has tons of useful guides and examples.

您想要包括:

using Word = Microsoft.Office.Interop.Word;
using Microsoft.Office.Tools.Word;

然后宣布你的申请:

Word.Application app = new Word.Application();

Declare your new document:

Word.Document doc = app.Documents.Add();

Add text to your documnet

有两种方法可以保存这些文件:

Programmatically

Using a save file dialog box

答案 1 :(得分:2)

这就是我这样做的方式。

app = new Word.Application();

object oMissing = System.Reflection.Missing.Value;
Word._Document oDoc = app.Documents.Add(ref oMissing, ref oMissing,
ref oMissing, ref oMissing);

.....

app.ActiveDocument.SaveAs2(fileName);

其中filename是我想要的文件名。当我最初这样做时,我发现有很多未记录的(因此不支持的)函数。 SaveAs2就是其中之一!但它确实有效。