0

これが私のコードの一部です。1つのボタンをクリックしてから、この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 },
    ]
});
4

2 に答える 2

1

Excelへのエクスポートには、このようなボタンを使用できます

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

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

このメソッドは、グリッドのフィルタリングされたコンテンツをエクスポートします。「exportdata」メソッドには、最後の引数が 1 つあります。以下のドキュメントを参照してください

グリッド内にロードされたすべての行を Excel、XML、CSV、TSV、HTML、または JSON にエクスポートします。

export メソッドの最初のパラメーターは、エクスポートのタイプ (「xls」、「xml」、「html」、「json」、「tsv」または「csv」) を決定します。2 番目のパラメーターはファイルの名前です。ファイル名を指定しない場合、グリッドはデータをローカル変数にエクスポートします。例えば:

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

3 番目のパラメーターはオプションで、列のヘッダーをエクスポートするかどうかを決定します。許容値は - true と false です。デフォルトでは、エクスポーターは列ヘッダーをエクスポートします。4 番目のパラメーターはオプションで、エクスポートする行の配列を決定します。デフォルトでは、すべての行がエクスポートされます。すべての行をエクスポートする場合は、null を設定します。5 番目のパラメーターはオプションで、非表示の列をエクスポートするかどうかを決定します。許容値は - true と false です。デフォルトでは、エクスポータは非表示の列をエクスポートしません。6 番目のパラメーターはオプションで、エクスポート サーバーの URL を決定します。デフォルトでは、エクスポーターは jQWidgets サーバーでホストされます。最後のパラメータはオプションで、文字セットを決定します。コード例

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 へのエクスポートを開くと、次のメッセージが表示される場合があります。は、このファイルを開く前に信頼できるソースからのものです。今すぐファイルを開きますか?」この警告メッセージの理由は、次の投稿で詳しく説明されています: excel-2007-extension-warning.aspx

于 2013-10-30T15:17:17.427 に答える
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シートで正しい検索データを取得します。

于 2014-05-19T09:56:45.217 に答える