mvc中html导出成word下载-简单粗暴方式
2024-10-15 23:26:06
由于工作需求,需要把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大胆猜测应该也是这种简单粗暴法
以上观点纯属个人观点
大牛勿喷 小白一个
最新文章
- RTP RTCP在音视频传输与同步方面的使用
- 转!mysql 查询 distinct多个字段 注意!!
- js 排列 组合 的一个简单例子
- Pace.js – 超赞的页面加载进度自动指示和 Ajax 导航效果
- Win7下:编译器错误信息: CS0016: 未能写入输出文件
- Java程序设计的基本原则
- Asianux的SSH登录问题,密码不正确解决
- asp.net夜话之十一:web.config详解
- ng-camera的API详解
- 使用 FLASH DATABASE 恢复误删除的用户
- C#实现将输入的数自动转换为科学计数法
- hibernate框架(4)---主键生成策略
- 解决报错:IncompleteElementException: Could not find result map...
- Windows10下用Anaconda3安装TensorFlow教程
- Minimum Inversion Number~hdu 1394
- ASP.NET 一个数据访问层的封装
- 如何用core自动创建model,与数据库连接
- oracle报错 ORA-02290: 违反检查约束条件问题
- FreeRadius+GoogleAuthenticator实现linux动态口令认证
- 【转】bios与CMOS有什么区别
热门文章
- JAVA异常处理之finally中最好不要使用return
- MAC上安装EndNote破解版的链接文件 以及某些安装好后有可能替换执照文件的方法
- [Usaco2007 Open]Fliptile 翻格子游戏
- 33. leetcode 268. Missing Number
- Spring初始化ApplicationContext线程托管实际运用架构构思
- ue4(c++) 按钮中的文字居中的问题
- Vue实例对象的数据选项
- python--DenyHttp项目(2)--ACM监考服务器端
- spring boot admin
- Linux下SVN配置