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

Dan*_*Dan 3 c# ms-word office-interop

我已经找到了大量有用的文档,它们涉及创建word doc实例,插入各种文本和格式设置,但是找不到任何地方来保存尚未以编程方式创建和打开的文档。

本质上,我想创建一个docx文件,并用富文本框中的文本填充它。使用我在文档末尾如何插入文本中找到的代码,如果我首先创建一个文档,则可以实现此目的。但是尽管有使用_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();
Run Code Online (Sandbox Code Playgroud)

现在,我们假设删除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();
Run Code Online (Sandbox Code Playgroud)

我看到的其他示例打开了文档,以便您可以自己保存它,但是我需要保存它而无需选择文件名,而无需任何人工干预。

感谢任何帮助,也排除了诸如spire和gem之类的第三方dll的选项,因此不是一个选项:(

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

Ube*_*tor 5

Microsoft MSDN文档包含大量有用的指南和示例。

您将要包括:

using Word = Microsoft.Office.Interop.Word;
using Microsoft.Office.Tools.Word;
Run Code Online (Sandbox Code Playgroud)

然后声明您的应用程序:

Word.Application app = new Word.Application();
Run Code Online (Sandbox Code Playgroud)

声明新文档:

Word.Document doc = app.Documents.Add();
Run Code Online (Sandbox Code Playgroud)

向您的documnet添加文本

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

以编程方式

使用保存文件对话框

  • 林突然对我为什么如此困惑感到困惑!谢谢罗德里格斯先生,我在您的编码很棒之前就弯下腰。 (3认同)