WordフォーマットのファイルをHTMLへ変換するサンプルを紹介します。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; .................... // WordフォーマットのファイルをHTMLへ変換 private void ConvertFileWordToHtml(string WordFilePath) { try { // 1 、対象のファイルを指定します。 object Source = WordFilePath; string SaveHtmlPath = WordFilePath.Substring(0, WordFilePath.Length - 4) + "html"; object Target = SaveHtmlPath; // 2、ReadOnlyでファイルを開きます object Unknown = Type.Missing; object readOnly = true; object visible = false; // 3、Wordファイルを開く Microsoft.Office.Interop.Word.Application newApp = new Microsoft.Office.Interop.Word.Application(); Microsoft.Office.Interop.Word.Document doc = newApp.Documents.Open(ref Source, ref Unknown, ref readOnly, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref visible, ref Unknown, ref Unknown, ref Unknown, ref Unknown); // 4、保存するフォーマットをHTMLに指定する Type docType = doc.GetType(); object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML; docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { Target, format,Unknown,Unknown,Unknown,Unknown,Unknown, Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown,Unknown }); // doc.SaveAs(ref Target, ref format, // ref Unknown, ref Unknown, ref Unknown, // ref Unknown, ref Unknown, ref Unknown, // ref Unknown, ref Unknown, ref Unknown, // ref Unknown, ref Unknown, ref Unknown, // ref Unknown, ref Unknown); // 5、Wordファイルを閉じる doc.Close(ref Unknown, ref Unknown, ref Unknown); newApp.Quit(ref Unknown, ref Unknown, ref Unknown); } catch (Exception e) { System.Windows.Forms.MessageBox.Show(e.Message); } } 方法2: protected void ConvertToHtml(string docPath,string htmlPath) { Word.Application app=new Word.Application(); app.Visible=false; Object o=Missing.Value; object docFile=docPath; _Document doc=app.Documents.Open(ref docFile,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o); object fileName=htmlPath; object format=8;//Html doc.SaveAs(ref fileName,ref format,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o,ref o); object t=true; app.Quit(ref t,ref o,ref o); } 方法3: Gmailで送った添付ファイルはIE上で直接に開ける、その上HTMLフォーマットで開けますので、Word.Applicationを利用する方法が見つけました Visual C# WordToHtml.aspx <%@ Page language="c#" Codebehind="WordToHtml.aspx.cs" AutoEventWireup="false" Inherits="aspxWebcs.WordToHtml" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>WordToHtml</title> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> </form> </body> </HTML> WordToHtml.aspx.cs using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using Office; namespace aspxWebcs { /// <summary> /// Microsoft Word 9.0 Object Libraryの参照が必要 /// </summary> public class WordToHtml : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { Word.ApplicationClass word = new Word.ApplicationClass(); Type wordType = word.GetType(); Word.Documents docs = word.Documents; // ファイルをOpenします。 Type docsType = docs.GetType(); object fileName = "d:\\tmp\\aaa.doc"; Word.Document doc = (Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] {fileName, true, true}); // フォーマットを変化し、保存します。 Type docType = doc.GetType(); object saveFileName = "d:\\tmp\\aaa.html"; //下記はMicrosoft Word 9 Object Libraryの書き方,10の場合は下記の書き方でもよい: //docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[]{saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML}); ///その他のフォーマット: ///wdFormatHTML ///wdFormatDocument ///wdFormatDOSText ///wdFormatDOSTextLineBreaks ///wdFormatEncodedText ///wdFormatRTF ///wdFormatTemplate ///wdFormatText ///wdFormatTextLineBreaks ///wdFormatUnicodeText docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[]{saveFileName, Word.WdSaveFormat.wdFormatHTML}); //Exist wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null); } override protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); } private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } } } ウィジェット型CM動画配信サービス manna [マナ] コメント: |