0

ページ Data.aspx で html テーブルを返そうとしていますが、そのテーブルを Excel 形式にしたいと考えています。これはこれまでの私のコードです。

Data.aspx ロードで:

Response.Clear()

    Select Case lstrCmd
        Case "summary"
            Response.Write(Summary())
            Response.Cache.SetCacheability(HttpCacheability.NoCache)
        Case "export"
            Response.ContentType = "application/ms-excel"
            Response.AddHeader("Content-Disposition", "attachment;filename=" & _
                    mstrProjectName & ".xls")
            Response.Write(SummaryExport())
    End Select

    Response.End()

したがって、追加ヘッダーは私が困惑しているところです。これは私のソフトウェアの別の部分が使用するものですが、動作するかどうかはわかりません..

これを呼び出すjqueryはajaxを使用しています:

     function btnSubmitExport_Click() {
        var compID = $("#ddlCompanies").val();
        var projectID = $("#ddlProjects").val();
        var startDate = $("#txtStartDate").val();
        var endDate = $("#txtEndDate").val();
        var compName = $("#ddlCompanies :selected").text();
        var projectName = $("#ddlProjects :selected").text();
        $("#content").html("<div class='loading'>loading...</div>");

        $.ajax({
            url:        "Data.aspx",
            data:       {
                            CompanyID:  compID,
                            ProjectID:  projectID,
                            CompanyName: compName,
                            ProjectName: projectName,
                            StartDate:  startDate,
                            EndDate:    endDate,
                            Cmd:        "export"
                        },                
            success:    function(html) {
                             $("#content").html(html);       
                        },
            error:      function(response) {
                    alert(response);
            }
        });
     }

したがって、通常、このデータを要求するときは、結果の html を default.aspx ページの「コンテンツ」div に入れるだけですが、その html を Excel ファイルにしたいのです!

これに関するヒントや考えは役に立ちます。

他の場所でも同じ質問が表示されますが、既存のコードに役立つ回答はありません..

4

2 に答える 2

1

HTMLテキストにTableタグが含まれている場合は、XLSの拡張子を付けて保存するだけで、MicrosoftExcelが魅力のように開きます。また、これまで見てきたように、ページにコンテンツを表示するのではなく、ユーザーにファイルをダウンロードしてもらいたいと考えています。ASPXページのページを直接(JQueryを使用せずに)リダイレクトする必要があります。開発者ツールでネットワークモニターを使用して、何が起こっているかを確認することをお勧めします。

乾杯

于 2012-09-07T17:13:27.907 に答える
0

通常、このヘッダーを使用する必要があります

Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "filename=excelfile.xls"

この特定のページで必要に応じてすべての出力を印刷します。これらのヘッダーを調査すれば、問題ありません。

于 2012-09-07T17:47:24.690 に答える