2011-10-18 8 views
2

私はワードファイルに書き込むために以下のコードを使用していますが、ワードファイルを格納することはできません。 C#を使って単語ファイルを保存する方法はありますか?C#を使ってdocファイルを保存するには

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. 
+1

oDocでSaveメソッドを呼び出すことはできません。 http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word._document.save.aspx参照:http://msdn.microsoft.com/en-us/library/microsoft .office.interop.word._document_members.aspx – Icarus

+2

またはSaveAs:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word._document.saveas.aspx –

答えて

8

名前を付けて保存することができます。

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を使用している場合は、oMissingsは必要ありません。

S

+1

+1;私にそれを打つ。しかし、C#4を使用していない場合は、fileNameを参照渡しする必要があります。 – vcsjones

0

はこれを試してみてください:

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); 
4

私は.NET 4とC#を使用して新しいコンソールアプリケーションを作成し、参照Microsoft Wordのオブジェクトライブラリには、あなたのコードを貼り付けと同様に、これらすべてのref missingを削除しました。 NET 4とオプションのパラメータは必要ありません。ここでは実際にcharmeのように動作する最終的なコードはここにあります:

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(); 
     } 
    } 
} 
関連する問題