从jqxgrid导出到Excel

问题描述 投票:0回答:2

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

$("#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 },
    ]
});
jquery export-to-excel jqxgrid
2个回答
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'。第二个参数是文件的名称。如果您不提供文件名,Grid将把数据导出到本地变量。例如:

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

第三个参数是可选的,用于确定是否导出列的标题。可接受的值是 - 真和假。默认情况下,导出器导出列标题。第四个参数是可选的,它确定要导出的行数组。默认情况下,将导出所有行。如果要导出所有行,请设置null。第五个参数是可选的,用于确定是否导出隐藏列。可接受的值是 - 真和假。默认情况下,导出器不会导出隐藏的列。第六个参数是可选的,它确定导出服务器的URL。默认情况下,导出器托管在jQWidgets服务器上。最后一个参数是可选的,用于确定char集。代码示例

调用exportdata方法。

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

自定义URL参数的代码示例

$("#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工作表中获得正确的搜索数据。

© www.soinside.com 2019 - 2024. All rights reserved.