zoukankan      html  css  js  c++  java
  • 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">邮箱:15645@qq.com</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大胆猜测应该也是这种简单粗暴法   


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

  • 相关阅读:
    java练习题2
    java练习题
    java输入输出
    字符集
    eclipse快捷键
    类和对象练习-people
    类和对象-三角形
    权限修饰符-输出求和阶乘
    权限修饰符-练习
    权限修饰符-father&&son
  • 原文地址:https://www.cnblogs.com/passerby-jia/p/7488757.html
Copyright © 2011-2022 走看看