如何将html表转换为Excel文件?

时间:2012-09-07 17:10:55

标签: html ajax vb.net excel export-to-excel

我正在尝试让我的页面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页面上的“content”div中..但是我希望html是一个excel文件!

任何关于此的提示或想法都会有所帮助。

我在其他地方看到了同样的问题,但没有任何答案可以帮助我使用现有的代码..

2 个答案:

答案 0 :(得分:1)

如果你的html文本中包含表格标签,那么简单地将其保存为XLS扩展名,而Microsoft Excel会像魅力一样打开它!而且正如我所见,您希望用户下载该文件,而不是在页面中显示其内容。您应该直接在ASPX页面上重定向页面(不使用JQuery)。我建议您在开发人员工具中使用网络监视器来查看正在发生的事情。

干杯

答案 1 :(得分:0)

Normaly你需要使用这个标题

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

在此特定页面中根据需要打印所有输出,即可。 研究这些标题,你会没事的。