使用C#或javascript将Table里的数据导出到Excel

原文:使用C#或javascript将Table里的数据导出到Excel

Demo效果图:

用C#将Table数据导出Excel:

 本方法已经将导出excel做成分部视图,引用时只需在视图中使用如下代码即可:

   @{
                Html.RenderAction("Index", "ExportExcel", new { divId = "report", filename = "hidTitle" });
            }

其中divId为table外层紧连的div的Id,filename为导出的excel名字。本模块使用MVC,以下为Controller部分,其中Index对应所述分布视图。

  public class ExportExcelController : Controller
    {
        [HttpPost]
        [ValidateInput(false)]
        public ActionResult DownloadReport(FormCollection form)
        {
            string excelContent = form["hidTable"];
            string filename = form["hidFileName"];
            ExportToExcel("application/ms-excel", filename + ".xls", excelContent);
            return View();
        }
        public void ExportToExcel(string FileType, string FileName, string ExcelContent)
        {
            System.Web.HttpContext.Current.Response.Charset = "UTF-8";
            System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
            System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
            System.Web.HttpContext.Current.Response.ContentType = FileType;
            System.IO.StringWriter tw = new System.IO.StringWriter();
            System.Web.HttpContext.Current.Response.Output.Write(ExcelContent.ToString());
            System.Web.HttpContext.Current.Response.Flush();
            System.Web.HttpContext.Current.Response.End();
        }
        public ActionResult Index(string divId, string filename)
        {
            ViewBag.HidDivId = divId;
            ViewBag.FileName = filename;
            return PartialView();
        }
    }

分布视图代码:

@{
    Layout = null;
}

<script type="text/javascript" src="~/Scripts/jquery-1.10.2.js"></script>

<form action="/ExportExcel/DownloadReport" method="post" style="display:inline">
    <input type="hidden" id="hidTable" name="hidTable" value="" />
    <input type="hidden" id="hidFileName" name="hidFileName" value="" />
    <input type="submit" name="btn" id="btnclick" class="btn blue" value="导出Excel文件" />
</form>

<script>
    $(function () {
        $("#btnclick").click(function () {
            $("#hidTable").val($("#@ViewBag.HidDivId").html());
            $("#hidFileName").val($("#@ViewBag.FileName").val());
        });
    });
</script>

用javascript将Table数据导出Excel:

 js文件地址:链接:http://pan.baidu.com/s/1jGwynWy 密码:kay1

使用方法:

 <a download="@(ViewBag.ExcelName).xls" href="#" onclick="return ExcellentExport.excel(this, 'excelTable', 'Sheet1');">导出Excel文件</a>

其中excelTable对应table的Id值。

Demo使用源码

@{
    Layout = null;
    ViewBag.Title = "ExcelDemo";
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>@ViewBag.Title</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .Data {
            width: 100%;
            height: 50px;
            background-color: #00ffff;
            text-align: center;
            font-size: 20px;
            color: red;
            line-height: 50px;
            font-weight: bold;
        }
        #report {
            width: 100%;
            margin:10px 7%;
        }
        .tablereport1 tr:nth-child(2n+1) {
            background: #e4e4e4;
        }
        .tablereport1 td {
            border: none !important;
            padding: 0px 10px;
            height: 40px;
            text-align: center;
        }
        .Down {
            margin: 10px 5px;
            line-height: 30px;
        }
        .Down a {
            border: 1px solid #a4a4a4;
            background-color: #e5e5e5;
            color: #000;
            font-size: 14px;
            text-decoration: none;
            border-radius: 2px;
        }
    </style>
    <script src="~/Scripts/Excel/excellentexport.js"></script>
</head>
    <body>
        <div class="Data">
            数据源
        </div>
        <input type="hidden" name="hidTitle" id="hidTitle" value="@ViewBag.ExcelName" />
        <div id="report">
            <table border="1" class="tablereport1" cellpadding="0" cellspacing="0" id="excelTable">
                <tr>
                    <td colspan="5" style="text-align:center;font-size:20px">
                        测试数据表
                    </td>
                </tr>
                @for (int i = 1; i < 6; i++)
                {
                    <tr>
                        @for (int j = 1; j < 5; j++)
                        {
                            <td>行@(i)列@(j)</td>
                        }
                    </tr>
                }
            </table>
        </div>
        <div class="Data">
            数据导出
        </div>
        <div class="Down">
            用C#将Table里的数据导出到Excel:<br />
            @{
                Html.RenderAction("Index", "ExportExcel", new { divId = "report", filename = "hidTitle" });
            }
        </div>
        <div class="Down">
            用js将Table里的数据导出到Excel:<br />
            <a download="@(ViewBag.ExcelName).xls" href="#" onclick="return ExcellentExport.excel(this, 'excelTable', 'Sheet1');">导出Excel文件</a>
        </div>
    </body>
</html>

 

时间: 2024-08-30 05:00:49

使用C#或javascript将Table里的数据导出到Excel的相关文章

excel-asp.net把DataTable里的数据导出到Excel 并且要做合并 某列里多行合并的操作

问题描述 asp.net把DataTable里的数据导出到Excel 并且要做合并 某列里多行合并的操作 把DataTable里的数据导出到Excel 并且要做合并 某列里多行合并的操作 请问有什么方法,求大神指教.谢谢了. 解决方案 http://m.baidu.com/from=1011267h/bd_page_type=1/ssid=0/uid=0/pu=usm%400%2Csz%401321_1004%2Cta%40utouch_2_4.1_11_2.1/baiduid=974ADEE1

C# 将DataTable里的数据导出到excel的代码,出了个问题谁能帮我

问题描述 publicclassImportExportToExcel{privateSystem.Windows.Forms.OpenFileDialogopenFileDlg=newSystem.Windows.Forms.OpenFileDialog();privateSystem.Windows.Forms.SaveFileDialogsaveFileDlg=newSystem.Windows.Forms.SaveFileDialog();publicImportExportToExce

如何把数据库里的数据导出成excel格式?

问题描述 大家好!请问高手如何把数据库里的数据导出成excel格式(用asp.net实现)谢谢! 解决方案 解决方案二:mark~解决方案三:网上有相关的例子,很多哦!解决方案四:1.gridview显示数据库的所需数据2.gridview导出excel下面是button事件中的代码protectedvoidBtn_ExportClick(objectsender,EventArgse){Response.ClearContent();Response.AddHeader("content-di

C# datagridview里的数据导出到Excel里,现在导出可以了,想实现导出的背景色!

问题描述 现在导出已经全部做好了.就是希望在导出到Excel里的数据背景和我DGV里的一样.大概效果如下图我手工做的效果大概意思就是这样,是以单元格为单位设置背景,不是以行或者列为单位.因为颜色可能会在后面导出考勤时使用,但是只能设置固定的颜色.我想设置成跟着DGV的背景一起导出.改如何实现??? 解决方案 解决方案二:在excel里面写个vba代码,然后c#调用它涂色.或者用第三方excel控件

导出-怎么把System.data.DataTable 里的数据导入到Excel表格里呢?

问题描述 怎么把System.data.DataTable 里的数据导入到Excel表格里呢? 请问怎么把Datatable里的数据导出到Excel里的表格里,我导出的只有一行是什么原因呢? 解决方案 遍历,然后自己通过微软提供的dll去写入到excel文件,或者用NPOI,这个挺好用的 解决方案二: 楼主使用的导出代码是什么?建议详细描述一下. 解决方案三: http://blog.csdn.net/xianfajushi/article/details/8120109

导入excel-php环境下把html页面table中的数据导入到Excel中

问题描述 php环境下把html页面table中的数据导入到Excel中 如题的问题,我看过网上一些解决方案,使用html5对象的方法可以忽略,因为我们的系统环境暂不支持html5:使用ActiveXObject方法的需要客户端支持,也不符合我们的设计思想.有没有更好解决办法,求详细方案. 解决方案 如果是客户端的,我也不知道怎么回答 如果是服务端导入的,我知道以下方案: 方案1,参考excel的openxml规范,生成对应的文件然后把这个文件打包为zip格式,这种方案最完美,然而我只有CLR下

mvc .cshtml 里Table里的数据如何传到控制台(.cs)?

问题描述 我想要把视图文件里的<table><tr><td>ID</td><td>name</td></tr><tr><td>1</td><td>mxw</td></tr><tr><td>2</td><td>baj</td></tr></table>这个表有很多行,可以

将datagridview里的数据导入到Excel模板里

问题描述 我有二个现成的Excel模板,现在想把datagridview的数据导入到一个Excel里.然后再导出具体信息的时候在第1个Excel里的第二个栏目里把第二个Excel模板放进去.如何实现,请给写代码?

有可以用Java语言把数据库里的数据导出到work的模板表格里的代码吗?

问题描述 非常感谢!急需 解决方案 解决方案二:有,不过都是针对特定场景的.你可以自己写一个.解决方案三:代码不会写所以才求助的啊!