由于工作需求,需要把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大胆猜测应该也是这种简单粗暴法

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

最新文章

  1. RTP RTCP在音视频传输与同步方面的使用
  2. 转!mysql 查询 distinct多个字段 注意!!
  3. js 排列 组合 的一个简单例子
  4. Pace.js – 超赞的页面加载进度自动指示和 Ajax 导航效果
  5. Win7下:编译器错误信息: CS0016: 未能写入输出文件
  6. Java程序设计的基本原则
  7. Asianux的SSH登录问题,密码不正确解决
  8. asp.net夜话之十一:web.config详解
  9. ng-camera的API详解
  10. 使用 FLASH DATABASE 恢复误删除的用户
  11. C#实现将输入的数自动转换为科学计数法
  12. hibernate框架(4)---主键生成策略
  13. 解决报错:IncompleteElementException: Could not find result map...
  14. Windows10下用Anaconda3安装TensorFlow教程
  15. Minimum Inversion Number~hdu 1394
  16. ASP.NET 一个数据访问层的封装
  17. 如何用core自动创建model,与数据库连接
  18. oracle报错 ORA-02290: 违反检查约束条件问题
  19. FreeRadius+GoogleAuthenticator实现linux动态口令认证
  20. 【转】bios与CMOS有什么区别

热门文章

  1. JAVA异常处理之finally中最好不要使用return
  2. MAC上安装EndNote破解版的链接文件 以及某些安装好后有可能替换执照文件的方法
  3. [Usaco2007 Open]Fliptile 翻格子游戏
  4. 33. leetcode 268. Missing Number
  5. Spring初始化ApplicationContext线程托管实际运用架构构思
  6. ue4(c++) 按钮中的文字居中的问题
  7. Vue实例对象的数据选项
  8. python--DenyHttp项目(2)--ACM监考服务器端
  9. spring boot admin
  10. Linux下SVN配置