【MVC】 页面导出 WORD, EXCEL

前端 js

    function output() {
var para = new Object();
para.html = getHtml("outputData");
para.type = "excel";
getAjaxText("/Test/SaveData", para, function (data) {
if (data != "") {
openWindow(stringFormat("/Test/Output?id={0}&type={1}&title={2}", data, para.type, "ceshi"));
}
});
}

后端 Action

       public ActionResult Output(string id, string title, string type)
{
var path = GetFilePath(id, type);
if (!System.IO.File.Exists(path))
{
return Redirect("/Error/Index");
}
Response.ContentEncoding = Encoding.GetEncoding("gb2312");
var byteArray = System.IO.File.ReadAllBytes(path);
return File(byteArray, "application/ms-" + type, title + GetType(type));
} [ValidateInput(false)]
public ActionResult SaveData(string html, string type)
{
var sb = new StringBuilder();
sb.Append("<!DOCTYPE html>");
sb.Append("<body>");
sb.Append(html);
sb.Append("</body>");
var byteArray = Encoding.Default.GetBytes(sb.ToString());
var guid = Guid.NewGuid();
System.IO.File.WriteAllBytes(GetFilePath(guid.ToString(), type), byteArray);
return Content(guid.ToString());
} private static string GetType(string type)
{
if (type.ToLower().Trim() == "word")
{
return ".doc";
}
return ".xls";
}

MS Excel 导出

public class ExcelHelper
{
public static void ExportExcel(DataTable dt, bool noColumn = false)
{
if (dt == null || dt.Rows.Count == 0) return; var xlApp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks; Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
if (!noColumn)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
var range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, i + 1];
range.Interior.ColorIndex = 15;
range.Font.Bold = true;
}
} for (int r = 0; r < dt.Rows.Count; r++)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
worksheet.Cells[r + 2, i + 1] = dt.Rows[r][i].ToString();
}
}
xlApp.Visible = true;
}
}

  

【MVC】 非常简单的页面导出 WORD, EXCEL方法的更多相关文章

  1. 导出word excel 方法

    ---导出excel public static void DataTableToExcelXjd(DataTable dt, string Title, string TmpColsName) { ...

  2. 记录集导出到Excel方法

    记录集导出到Excel方法   Public Function ExportToExcel(RSrecord As ADODB.Recordset, Titles_Name)'============ ...

  3. 网页内容导出word/excel的js代码

    IE设置: 工具-> Internet选项-> 安全->自定义级别-> 对没有标记安全级别的ActiveX控件进行初始化  设为启用! 1.导出word //指定区域导出到Wo ...

  4. MVC 将视图页table导出成excel

    前台代码: <table class="tablelist" id="myTable">    <thead>        <t ...

  5. Spring MVC 通过反射将数据导出到excel

    直接上代码 // 导出excel方法 @RequestMapping("exportExcel") public void exportExcel(HttpServletReque ...

  6. 如何将html页面导出word格式?

    近期做的项目也是奇葩,页面上需要导出excel,pdf,还有导出图片等...,刚把前几个怂好,还有下载成word文件,如何处理? function getOutword (id, fileName) ...

  7. html页面导出word文档

    1.加入两个外部js 1)FileSaver.js /* FileSaver.js * A saveAs() FileSaver implementation. * 1.3.2 * 2016-06-1 ...

  8. web页面导出到Excel乱码解决

    引言: 前几天 在做web项目的时候 需要导出页面上的数据 到Excel里面 但有的时候出现乱码(有de时候不出现 很奇怪) 原来的代码是这样的: HttpContext.Current.Respon ...

  9. html页面导出为excel表格

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

随机推荐

  1. Oracle的in/not in(x,...,null)

    简述 cola in (x,y,z)等价于 cola=x or cola=y or cola=z cola not in (x,y,z)等价于 !(cola=x or cola=y or cola=z ...

  2. ajax请求后弹开新页面被浏览器拦截

    window.open()我想应该很多人都不陌生吧,它可以实现除用a标签以外来实现打开新窗口! 最近开发项目用到时,却遇到了麻烦,本来好好的弹出窗口,结果被浏览器无情的给拦截了! 代码如下: $.ge ...

  3. Maven学习 (一) 搭建Maven环境

      有两种方式可以配置maven的环境配置,本人推荐使用第二种,即使用本地的maven安装文件,个人感觉这样可以方便管理下载jar包的存放位置,错误信息的输出等,可以在dos窗口中可以清晰看到,虽然比 ...

  4. iTextSharp 使用详解(转)

    PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少,在网上搜来搜去,都转贴的是同一段“暴力”破解的方法,代码片断如下 ...

  5. 指定线程执行的顺序---join()

    线程T1,T2,T3分别启动,如何让其执行顺序变为T3>T2>T1: 线程1: package test6; public class Thread1 extends Thread{ pr ...

  6. ruby中http请求方法整理

    #POST请求 请求包是json包 返回body并转换成json对象def post_json *args uri = URI.parse args[0] req = Net::HTTP::Post. ...

  7. 【MySQL】InnoDB日志机制深入分析

    版权声明:尊重博主劳动成果,欢迎转载,转载请注明出处 --爱技术的华仔 Log & Checkpoint Innodb的事务日志是指Redo log,简称Log,保存在日志文件ib_logfi ...

  8. Asp.net中WebForm 与 MVC的架构区别

    ASP.NET Webform 后台代码(behind code) 这种behind code 模式有5个问题,我们用MVC的设计思想来分别解决这些问题 1.基于视图的方案来解决基于行为的需求 从上图 ...

  9. 【巩固】CSS3的3D动画 ——3D旋转(1)

    最近学了妙味的css3的动画,2D,3D的都有,先写一个最简单的3d翻转效果,鼠标移入div,正反面翻转效果. 注意点有: 要给正反面外面加个父级: transform-style: preserve ...

  10. 51nod 最近刷题 简要题解

    51nod 1564 由于数据是随机的,可以证明,对于每一个数,向左或右找比它小的数,长度是logn级别的 考虑枚举最大值 注意,对于每一个最大值,如果直接用2个循环枚举左右端点的话,理论是lognl ...