asp.net - 导出表

时间:2011-09-08 14:24:47

标签: asp.net export-to-excel

将表格导出为Excel文件格式时遇到了很大问题。

首先,我创建了在服务器上运行的代码,并允许我将数据导出到Excel。由于我的表是从数据库动态创建的,因此该阶段的表中没有任何内容,因此没有导出数据。

我的第二种方法是使用javascript或一个名为“DataTables”(www.datatables.net)的非常好的jQuery插件来定位客户端的最终编译表。两次尝试都失败了。 Javascript对我来说似乎很复杂,加上它在Firefox中运行有困难,另一方面插件需要一个非常具体的表结构,我恐怕无法提供。

因此,我的一个新想法是:在编译并在服务器上构建之后,但在将其发送到浏览器之前抓取页面。使用服务器上的功能定位表并获取其数据。最后将数据导出到Excel,并将页面发送到浏览器。现在。可能吗?如果是,那怎么样?

我是编程世界的初学者,所以任何建设性的建议和批评都会受到高度赞赏。我不介意任何硬代码示例;)

4 个答案:

答案 0 :(得分:1)

您可以尝试这样做:

protected void btnExport_Click(object sender, EventArgs e)
{       
    Response.Clear();
    Response.Buffer = true;
    Response.ContentType = "application/vnd.ms-excel";
    Response.Charset = "";

    System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

    //if you're exporting a table put the table in a placeholder and render 
    //the placeholder to the text writer here
    grdJobs.RenderControl(oHtmlTextWriter);

    Response.Write(oStringWriter.ToString());
    Response.End();
}

答案 1 :(得分:0)

您需要做的是将查询结果导出为.CSV文件。可以在Excel中打开CSV文件完全没问题。 http://wiki.asp.net/page.aspx/401/export-to-csv-file/这将向您展示如何导出为.CSV格式。

答案 2 :(得分:0)

你会在这里获得很多建议而不是答案。我的建议是尝试jQuery插件:table2csv以创建更通用的文件格式。但是有一些方法可以定位实际的Excel格式,例如this project。

答案 3 :(得分:0)

如果您想要导出到实际的XLS或XLSX而不仅仅是CSV或只是在Excel中“打开”的东西,那么第三方工具可以帮助您解决这个问题。这里有一个例子:

http://www.officewriter.com