Как сохранить файл документа с помощью C # - PullRequest
2 голосов
/ 18 октября 2011

Я использовал следующее для написания кода в файле слова, но не смог сохранить файл слова.Есть ли способ сохранить файл слова с помощью C #?

object oMissing = System.Reflection.Missing.Value;
                object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */
                //Start Word and create a new document.
                Microsoft.Office.Interop.Word._Application oWord = new Microsoft.Office.Interop.Word.Application();

            Microsoft.Office.Interop.Word._Document oDoc = new Microsoft.Office.Interop.Word.Document();

            oWord.Visible = true;

            oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);

            //Insert a paragraph at the beginning of the document.
            Microsoft.Office.Interop.Word.Paragraph oPara1;

            oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
            oPara1.Range.Text = "Heading 1";
            oPara1.Range.Font.Bold = 1;
            oPara1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.

Ответы [ 3 ]

9 голосов
/ 18 октября 2011

Вы должны просто иметь возможность использовать SaveAs.

oDoc.SaveAs("MyFile.doc", ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

Если вы используете .NET 4.0, вам не нужны пропуски.

S

4 голосов
/ 18 октября 2011

Я только что создал новое консольное приложение с использованием .NET 4 и C #, ссылался на библиотеку объектов Microsoft Word, вставил ваш код и удалил все эти ref missing, так как в .NET 4 и дополнительные параметры больше не нужны, здесь окончательный код который действительно работает как шарм:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Microsoft.Office.Interop.Word;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            Microsoft.Office.Interop.Word._Application oWord = new Application();

            oWord.Visible = true;

            var oDoc = oWord.Documents.Add();

            //Insert a paragraph at the beginning of the document.
            var paragraph1 = oDoc.Content.Paragraphs.Add();

            paragraph1.Range.Text = "Heading 1";
            paragraph1.Range.Font.Bold = 1;
            paragraph1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.

            oDoc.SaveAs2(@"C:\Temp\TestDocumentWith1Paragraph.docx");

            oWord.Quit();
        }
    }
}
0 голосов
/ 18 октября 2011

Попробуйте это:

var FileName = 'file name with path'

    oWord.ActiveDocument.SaveAs(ref FileName, ref missing,
                        ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing,
                        ref missing, ref missing);
    oDoc.Close(ref missing, ref missing, ref missing);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...