2013-10-30 56 views
0

这里是我的代码的一部分。当我点击一个按钮,然后用此jqxgrid下载excel文件。我试图在jqwidget.com上找到答案,但该网站已关闭。
我在这个网站上发现了一些类似的答案。但它是关于PHP的。但我的是java。从jqxgrid导出到Excel

$("#jqxgrid").jqxGrid(
{ 
    width: '99.7%', 
    height: '99.7%', 
    source: dataAdapter, 
    virtualmode: true, 
    rendergridrows: function() 
    { 
     return dataAdapter.records;  
    },    
    theme: theme, 
    columnsresize: true,  
    pageable: true,   
    enabletooltips: true, 
    //autoheight: true,  
    //autorowheight: true, 
    selectionmode: 'singlecell',  
    altrows: true, 
    sortable: true, 
    editable: true, 
    editmode: 'dblclick', 
    scrollmode: 'deferred', 
    pagesize: 30, 
    pagesizeoptions: ['10', '20','30', '50', '100', '200', '300', '500'], 
    columns: [ 
     { text: ' ',  datafield: 'procImg', align : 'center', cellsalign : 'center', width: '30px', cellsrenderer: imagerenderer, editable: false, filterable:false, sortable: false }, 
     (retireFlag=="0")?{ text: 'delete', datafield: 'delBool', align : 'center', cellsalign : 'center', columntype: 'checkbox', width: '41px', filterable:false, sortable: false}:null, 
     (retireFlag=="0")?{ text: 'Use', dataField: 'useBool', align : 'center', cellsalign : 'center', columntype: 'checkbox', width: '67px', editable: true, sortable: false}:null,     
     { text: 'ID',  dataField: 'mng_id', align : 'center', cellsalign : 'center', columntype: 'textbox', width: '115px', editable: false, cellsrenderer: cellsrenderer1 }, 
    ] 
}); 

回答

0

对于导出到Excel,您可以使用一个按钮这样

<button id="export_Excel">Excel</button> 
and in your javascript file, 

    $("#export_Excel").click(function() { 
     $("#jqxgrid").jqxGrid('exportdata', 'xls', 'Filename'); 
    }); 

此方法将导出格的过滤的内容。 “exportdata”方法有最后一个参数。请参阅以下文档

将网格中加载的所有行导出为Excel,XML,CSV,TSV,HTML或JSON。

导出方法的第一个参数决定导出的类型 - 'xls','xml','html','json','tsv'或'csv'。 第二个参数是文件的名称。如果您没有提供文件名,网格会将数据导出到本地变量。 例如:

var data = $("#jqxgrid").jqxGrid('exportdata', 'json'); 

第三个参数是可选的,并且确定是否导出列标题或没有。可接受的值是 - 真和假。默认情况下,导出器导出列标题。 第四个参数是可选的,并确定要导出的行数组。默认情况下,所有行都被导出。如果您想要导出所有行,请设置为空。 第五个参数是可选的,并确定是否导出隐藏的列。可接受的值是 - 真和假。默认情况下,导出器不会导出隐藏的列。 第六个参数是可选的,并确定导出服务器的URL。默认情况下,导出器托管在jQWidgets服务器上。 最后一个参数是可选的,并确定字符集。 代码示例

调用exportdata方法。自定义URL参数

$("#jqxGrid").jqxGrid('exportdata', 'json', 'jqxGrid'); 

代码示例

$("#jqxGrid").jqxGrid('exportdata', 'json', 'jqxGrid', true, null, true, http://www.myserver.com/save-file.php); 

导出到Excel工作原理与ExcelML格式。 ExcelML是基于XML的文件格式。它符合Microsoft XMLSS规范,并且在Microsoft Office 2003及更高版本中受支持。 *当您打开导出到Excel时,您可能会收到以下消息:“您尝试打开的文件'file_name.xls'采用与文件扩展名指定的格式不同的格式验证文件未损坏并且在打开此文件之前从可信来源获得,您想立即打开文件吗?“ 此警告消息的原因在以下文章中详细解释:excel-2007-extension-warning。ASPX

0

在jqGrid的,你可以遵循这样的:

首先创建一个按钮:

下载

function Export() { 
      var params = { "fromDate": $("#hdnFrom").val(), "toDate": $("#hdnTo").val() } 
      var str = jQuery.param(params); 
      window.open("/Analytics/ExportGridView?" + str, '_blank') 
     } 

现在称之为从控制器的处理方法:

public ActionResult ExportGridView(string fromDate,string toDate) 
     { 
      try 
      { 
       //LINQ to SQL context class 

       //Create gridview object - Make sure you have added reference to Syster.Web.UI.ServerControls 
       GridView gv = new GridView(); 
       //Call Method to apply style to gridview - This is optional part and can be avoided 
       StyleGrid(ref gv); 
       //assing datasource from context class to gridview object 

        gv.DataSource = GetReportDetails(fromDate, toDate); 

       //gv.DataSource = Convert.(dataContext.GetTractorTrasactionDateReport); 
       //Important - bind gridview object 
       gv.DataBind(); 
       //We have gridview object ready in memory. Follow normal "export gridview to excel" code 
       Response.ClearContent(); 
       Response.ClearHeaders(); 
       Response.Clear(); 
       Response.AddHeader("content-disposition", "attachment; filename=AnalyticReport.xls"); 
       Response.ContentType = "application/ms-excel"; 
       //Ccreate string writer object and pass it to HtmlTextWriter object 
       StringWriter sw = new StringWriter(); 
       HtmlTextWriter htw = new HtmlTextWriter(sw); 
       //Call gridiview objects RenderControl method to output gridview content to HtmlTextWriter 
       gv.RenderControl(htw); 
       //Pass rendered string to Response object which would be presented to user for download 
       Response.Write(sw.ToString()); 
       Response.End(); 
       return View("Analytics"); 
      } 
      catch (Exception ex) 
      { 

       return Json(ex.Message.ToString()); 
      } 

     } 

通行证搜索从隐藏字段中过滤:

public List<ExportModel> GetReportDetails(string fromDate, string toDate) 
     { 

      var userList = new List<ExportModel>(); 

      var Process = from TT in db.tblManagePosts 
          where TT.Date >= Convert.ToDateTime(fromDate) && TT.Date <= Convert.ToDateTime(toDate) && TT.IsArchive == 0 
          orderby TT.PostId descending 
          select new { TT.Title,TT.Content, TT.Date,TT.Views }; 

      int Count = Process.Count(); 
      if (Count > 0) 
      { 
       foreach (var selection in Process) 
       { 

        ExportModel user = new ExportModel(); 
        user.Title = selection.Title; 
        user.Content = Regex.Replace(selection.Content, @"<[^>]*>", String.Empty); 
        DateTime time = selection.Date; 
        String format = "dd/MM/yyyy"; 
        user.Date = time.ToString(format); 
        user.Views = selection.Views; 
        userList.Add(user); 

       } 

      } 
      return userList; 
     } 

您将在Excel工作表中获得正确的搜索数据。