2013-10-30 81 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工作表中獲得正確的搜索數據。