mvc中html导出成word下载-简单粗暴方式

由于工作需求,需要把html简历页导出成word下载。网上搜索了很多解决方案,基本都是用一些插件,然后写法也很麻烦,需要创建模板什么的。

固定替换值  代码一大堆。但是对于我的需求来说  并没有什么用,因为我这边的数据不能固定。  所以只能另寻办法,皇天不负有心人   找了一天

终于找到了 
哈哈

mvc中的FlieResult  非常强大  可以直接传入html   指定文件格式  直接返回Flie文件下载

不多说了   直接上代码吧   非常之简单粗暴

后台代码:

        [ValidateInput(false)]
        [HttpPost]
        public FileResult ExportWord(string html)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<!DOCTYPE html>");
            sb.Append("<body>");
            sb.Append(html);
            sb.Append("</body>");
            var byteArray = System.Text.Encoding.Default.GetBytes(sb.ToString());
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
            return File(byteArray, "application/ms-word", "wordtest" + ".doc");
        }

前台代码:

<body>
    <form hidden id="form1" action="/Home/ExportWord" method="post">
        <input type="hidden" value="" name="html" id="cc" />
        <input type="submit" id="st" />
    </form>
<div id="target">
    <style>
        table {
            border: 0;
            width: 1000px;
        }
        .tr {
            background-color: #ccc;
            font-size: 16px;
             width: 500px;
        }
        .pl20 {
            padding-left: 20px;
        }
        .pt10 {
            padding-top: 10px;
        }
    </style>
    <table>
        <tr class="tr">
            <td>个人信息</td>
        </tr>
        <tr>
            <td class="pl20 pt10">姓名:张三</td>
        </tr>
        <tr>
            <td class="pl20 pt10">联系电话</td>
        </tr>
        <tr>
            <td class="pl20 pt10">邮箱:[email protected]</td>
        </tr>
    </table>
</div>
</body>
<a id="ea" href="#">导出word</a>

js代码:

<script>
    $("#ea").click(function () {
        var html = $("#target").html();
        $("#cc").val(html);
        $("#st").click();
    })
</script>

这里lz用的post提交,因为get提交url有长度限制   大家应该都懂  这里就不多说了

样式必须写内联或者行内样式   不然导出来的文件会没有样式 图片必须用绝对路径  不然不会显示

lz在研究导出word的时候去逛了一下智联和51job的导出word  智联没看出是用的什么方法导出的   51job应该也是用的这种类似的方式  用PHP写的   由于lz是个刚入行的小白

51具体用什么方式导出的也不太清楚   只是一个猜测   看了下他们那个简历页的html代码    样式也是写的内联  所以lz大胆猜测应该也是这种简单粗暴法

以上观点纯属个人观点  
大牛勿喷   小白一个

时间: 2024-11-03 21:08:39

mvc中html导出成word下载-简单粗暴方式的相关文章

java将html导出成word(利用的poi包导出)

//导出到word public void exportWord(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception { DBTool tool = null ; try { /*** 查询数据库获得数据 **/ ArrayList records = form.getRecords(); if(

java将html导出成word ——增加换行 换页符号

java将html导出word增加换行符 //换页 <span lang=EN-US style='font-size:12.0pt;line-height:150%;font-family:"Times New Roman"; mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;mso-ansi-language:EN-US; mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA'&

iOS打包成 ipa包(简单粗暴方法)

按照下面的步骤走,就可以打包成功,我不说各种原因,只讲操作步骤: 简单粗暴!!! 首先你得有一个苹果开发者账号.要是没有,就自己申请一个. 注意:在创建app IDs 还有描述文件的时候,需要添加的是发布版本,就是ad hoc里面的版本,而不是简单的开发版本.如下图:(证书与描述文件都需要发布版本的) 可以先忽略,一会在创建证书的时候再看 1.创建一个ipaDemo工程. 2.打开苹果开发者中心.网址 :https://developer.apple.com/membercenter 3.打开这

在Asp.Net MVC中实现计算页面执行时间及简单流量统计

引用www.rsion.com.dll进您的asp.net MVC项目本人不才,源代码中有详细说明,查看demo修改HomeController public class HomeController:Controller    {    public ActionResult Index(){}    } 为 public class HomeController:www.Rsion.Com.PageExecuteTimeSpan    {    public ActionResult Ind

Spring MVC中页面向后台传值的几种方式

在学习 Spring Mvc 过程中,有必要来先了解几个关键参数:   @Controller:         在类上注解,则此类将编程一个控制器,在项目启动 Spring 将自动扫描此类,并进行对应URL路由映射.@Controllerpublic class UserAction {    }  @RequestMapping         指定URL映射路径,如果在控制器上配置 RequestMapping  ,具体请求方法也配置路径则映射的路径为两者路径的叠加 常用映射如:Reque

在MVC中加载view(点开链接)的方式

主要有: Html.ActionLink Html.RenderPartial Html.RenderAction Html.Partial AJAX.ActionLink load 浏览器对象模型 (BOM)(Browser Object Model) html中 1. Html.ActionLink 比如html代码 @Html.ActionLink("查看", "index", "home", new { ID="first&qu

mvc下ajax请求遇到session超时简单处理方式

转自:http://blog.csdn.net/yeyicsdn/article/details/50032787 参考网址:http://www.cnblogs.com/RachelChen/p/5433881.html 修改了前台全局ajax部分代码,如下: $(document).ajaxComplete(function (event, xhr, settings) { //通过XMLHttpRequest取得响应头,sessionstatus, var sessionstatus =

如何在MVC中显示条形码图片(以内存流的方式)

前台代码: <script type="text/javascript"> function fresh() { var getimagecode = document.getElementById("testimg"); var val = document.getElementById("txtcontent").value; getimagecode.src = "../Home/codeindex?content=&

MVC中Control和View之间数据传递的方式

1:ViewBag和ViewData 具体区别不做讨论,本处只演示ViewData的具体示例: Controler代码:ViewData["Employee"] = emp; View代码: @{ WebApplication1.Models.Employee emp=(WebApplication1.Models.Employee) ViewData["Employee"]; } <b>Employee Details </b><br