【发布时间】:2012-07-10 15:06:00
【问题描述】:
我想使用和导出按钮从我的网页中导出数据。数据显示在 3 个不同的 gridviews 中,我想将它们分隔到 3 个不同的工作表“前 1、前 2、前 3”我想使用 c# 和 asp.net 做这个客户端我该怎么做?我可以使用java脚本吗?
这是我的代码
using System;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.Text;
using System.IO;
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataSet dataSet = new DataSet();
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ISALog1ConnectionString"].ToString());
SqlCommand cmd = new SqlCommand("exec ProxyReport", conn);
cmd.CommandTimeout = 200;
SqlDataAdapter ad = new SqlDataAdapter(cmd);
ad.Fill(dataSet);
GridView1.DataSource = dataSet.Tables[0];
GridView1.DataBind();
GridView2.DataSource = dataSet.Tables[1];
GridView2.DataBind();
GridView3.DataSource = dataSet.Tables[2];
GridView3.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
string attachment = "attachment; filename=Top 1.xls";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
GridView1.RenderControl(htw);
GridView2.RenderControl(htw);
GridView3.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}
protected void GetExcel(object sender, EventArgs e)
{
//3 gridviews each in 3 different worksheets
}
public override void VerifyRenderingInServerForm(Control control)
{
}
}
【问题讨论】:
-
这行得通吗?有人可以在我的代码中实现它吗? stackoverflow.com/questions/7632782/…
-
该解决方案不是客户端,需要服务器上的 excel。 Excel 不适合在服务器上或批量使用。你必须使用第三方选项,除非你想推出自己的,我会继续猜测,不会让你走远..
-
您有什么建议可以轻松实现这一点?我应该将代码更改为客户端吗?我试过 epplus 但我不明白它是如何工作的。
-
epplus 实际上是我推荐的,如果您不介意获取 xlsx (excel 2007+) 文件.. 否则 npoi 像下面建议的 spti43。
-
好的,epplus 似乎是最好的选择。但我仍然不知道如何将代码实现到我的工作中。
标签: c# javascript asp.net excel gridview