我想使用Word Viewer将Word文档保存为HTML,而不在我的计算机中安装Word.有没有办法在C#中实现这一目标?
小智 19
要将.docx文件转换为HTML格式,可以使用OpenXmlPowerTools.确保添加对OpenXmlPowerTools.dll的引用.
using OpenXmlPowerTools;
using DocumentFormat.OpenXml.Wordprocessing;
byte[] byteArray = File.ReadAllBytes(DocxFilePath);
using (MemoryStream memoryStream = new MemoryStream())
{
memoryStream.Write(byteArray, 0, byteArray.Length);
using (WordprocessingDocument doc = WordprocessingDocument.Open(memoryStream, true))
{
HtmlConverterSettings settings = new HtmlConverterSettings()
{
PageTitle = "My Page Title"
};
XElement html = HtmlConverter.ConvertToHtml(doc, settings);
File.WriteAllText(HTMLFilePath, html.ToStringNewLineOnAttributes());
}
}
Run Code Online (Sandbox Code Playgroud)
你可以试试Microsoft.Office.Interop.Word;
using Word = Microsoft.Office.Interop.Word;
public static void ConvertDocToHtml(object Sourcepath, object TargetPath)
{
Word._Application newApp = new Word.Application();
Word.Documents d = newApp.Documents;
object Unknown = Type.Missing;
Word.Document od = d.Open(ref Sourcepath, 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);
object format = Word.WdSaveFormat.wdFormatHTML;
newApp.ActiveDocument.SaveAs(ref TargetPath, 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);
newApp.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges);
}
Run Code Online (Sandbox Code Playgroud)