首页 > 代码库 > Html To Word(一)

Html To Word(一)

Html to Word 博客中有很多文章, 我就把自己在项目中用到的,比较简单的写一下, 方便以后用到

 

本人采用C# mvc 

1、项目中创建view 页面,

 页面内容

<!DOCTYPE html><html><head>    <meta name="viewport" content="width=device-width" />    <title>TestHtmlToWord</title></head><body>    <div>         <h1>Html To Word Test</h1>    </div></body></html>

  控制器创建

public void HtmlToWordTest()        {            string wordContent = string.Empty;            IView view = ViewEngines.Engines.FindPartialView(ControllerContext, "TestHtmlToWorld").View;            using (var writer = new StringWriter())            {                var viewContext = new ViewContext(ControllerContext, view, ViewData, TempData, writer);                viewContext.View.Render(viewContext, writer);                wordContent = writer.ToString();                writer.Close();                writer.Dispose();            }            string name = string.Empty;            string userAgent = Request.ServerVariables["http_user_agent"].ToLower();            Response.AppendHeader("Content-Disposition", "attachment;filename=TestHtmlToWorld.doc");            Response.ContentType = "application/ms-word";            Response.Charset = "utf-8";            Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");            Response.Write(wordContent);            Response.End();        }

 

 下载下来后,默认打开是网页word

技术分享

但是实际上我们要的是

技术分享

 

所以还需要在页面中添加

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"xmlns="http://www.w3.org/TR/REC-html40">
<!--[if gte mso 9]><xml><w:WordDocument><w:View>Print</w:View><w:TrackMoves>false</w:TrackMoves><w:TrackFormatting/><w:ValidateAgainstSchemas/><w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid><w:IgnoreMixedContent>false</w:IgnoreMixedContent><w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText><w:DoNotPromoteQF/><w:LidThemeOther>EN-US</w:LidThemeOther><w:LidThemeAsian>ZH-CN</w:LidThemeAsian><w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript><w:Compatibility><w:BreakWrappedTables/><w:SnapToGridInCell/><w:WrapTextWithPunct/><w:UseAsianBreakRules/><w:DontGrowAutofit/><w:SplitPgBreakAndParaMark/><w:DontVertAlignCellWithSp/><w:DontBreakConstrainedForcedTables/><w:DontVertAlignInTxbx/><w:Word11KerningPairs/><w:CachedColBalance/><w:UseFELayout/></w:Compatibility><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><m:mathPr><m:mathFont m:val="Cambria Math"/><m:brkBin m:val="before"/><m:brkBinSub m:val="--"/><m:smallFrac m:val="off"/><m:dispDef/><m:lMargin m:val="0"/> <m:rMargin m:val="0"/><m:defJc m:val="centerGroup"/><m:wrapIndent m:val="1440"/><m:intLim m:val="subSup"/><m:naryLim m:val="undOvr"/></m:mathPr></w:WordDocument></xml><![endif]-->

最终页面

<!DOCTYPE html><html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"      xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"      xmlns="http://www.w3.org/TR/REC-html40"><head>    <!--[if gte mso 9]><xml><w:WordDocument><w:View>Print</w:View><w:TrackMoves>false</w:TrackMoves><w:TrackFormatting/><w:ValidateAgainstSchemas/><w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid><w:IgnoreMixedContent>false</w:IgnoreMixedContent><w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText><w:DoNotPromoteQF/><w:LidThemeOther>EN-US</w:LidThemeOther><w:LidThemeAsian>ZH-CN</w:LidThemeAsian><w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript><w:Compatibility><w:BreakWrappedTables/><w:SnapToGridInCell/><w:WrapTextWithPunct/><w:UseAsianBreakRules/><w:DontGrowAutofit/><w:SplitPgBreakAndParaMark/><w:DontVertAlignCellWithSp/><w:DontBreakConstrainedForcedTables/><w:DontVertAlignInTxbx/><w:Word11KerningPairs/><w:CachedColBalance/><w:UseFELayout/></w:Compatibility><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><m:mathPr><m:mathFont m:val="Cambria Math"/><m:brkBin m:val="before"/><m:brkBinSub m:val="--"/><m:smallFrac m:val="off"/><m:dispDef/><m:lMargin m:val="0"/> <m:rMargin m:val="0"/><m:defJc m:val="centerGroup"/><m:wrapIndent m:val="1440"/><m:intLim m:val="subSup"/><m:naryLim m:val="undOvr"/></m:mathPr></w:WordDocument></xml><![endif]-->    <meta name="viewport" content="width=device-width" />    <title>TestHtmlToWorld</title></head><body>    <div>        <h1>Html To Word Test</h1>    </div></body></html>

 

后期可能还会有其他的方法, 待完善... 

  

 

Html To Word(一)