【问题标题】:Enabel Excel Autofilter when export the data from gridview从gridview导出数据时启用Excel Autofilter
【发布时间】:2014-11-11 21:10:32
【问题描述】:

如果有人能帮助我了解如何在从 gridview 导出数据时启用 Excel 上的筛选功能,我将不胜感激。(Excel 自动筛选)

 public ActionResult ExportToExcel(List<EventViewModel> list)
    {
        try
        {
           // Main
             GridView gv = new GridView();
            gv.DataSource = list.ToList();
            gv.DataBind();

            Response.ClearContent();
            Response.Buffer = true;
            Response.Charset = "";
            Response.AddHeader("content-disposition", "attachment; filename=filename.xls");//Response.AddHeader("content-disposition", "inline; filename=Excel.xls");
            Response.ContentType = "application/excel";

            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            gv.RenderControl(htw);
            Response.Output.Write(sw.ToString());
            Response.Flush();
            Response.End();

            return RedirectToAction("Index");

        }
        catch (System.Exception e)
        { 
            return View("Error");
        }
    }

【问题讨论】:

  • Hanouf D 在谷歌搜索框C# exporting the data from gridview.( Excel Autofilter) 中准确输入以下内容会得到什么?
  • 他们都使用 autofilter='all' 从视图或 Microsoft.Office.Interop.Excel 库与 asp.net 网页。但我正在使用 ASP.NET MVC 4 - 剃刀视图>

标签: c# asp.net-mvc gridview export-to-excel


【解决方案1】:

您的代码导出一个带有 XLS 扩展名的 HTML 文件。它不是二进制 XLS 文件,您不能使用 Excel 自动过滤器,不使用您的代码。

如果您不能使用 Microsoft.Office.Interop.Excel 库,您可以搜索另一个导出真实 Excel 文件的 Excel 库。

我使用EasyXLS Excel library。这段代码导出了gridview的数据表并添加了一个自动过滤器,它使用了这个库:

// Create an instance of the class that exports Excel files, having one sheet
ExcelDocument xls = new ExcelDocument(1);

// Get the sheet
ExcelWorksheet xlsWorksheet = (ExcelWorksheet)xls.easy_getSheetAt(0);

// Create a dataset that keeps the gridview datatable
DataSet dataSet = new DataSet();
dataSet.Tables.Add((DataTable)gridView.DataSource);

// Insert the dataset into sheet
xlsWorksheet.easy_insertDataSet(dataSet, true);

//Add AutoFilter
ExcelFilter xlsFilter = xlsWorksheet.easy_getFilter();
xlsFilter.setAutoFilter("A1:E1");

// Choose a name for the xls file 
string fileName = "filename.xls";
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=" + fileName);
Response.ContentType = "application/vnd.ms-excel";

// Export Excel file and prompt the "Open or Save Dialog Box" 
xls.easy_WriteXLSFile(Response.OutputStream);

// Dispose memory
xls.Dispose();
Response.End();

有关格式化的更多详细信息,请阅读有关 export gridview to Excel 的链接。

【讨论】:

    猜你喜欢
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多