girdview在服务器上生成excel不知道怎么第一行怎么出现一个?号 求高手怎样能去掉那个?号
<%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation="false" CodeFile="GridViewToExcelFile.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gvFoods" runat="server" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None" EnableViewState="true">
<FooterStyle BackColor="Tan" />
<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
<PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />
<HeaderStyle BackColor="Tan" Font-Bold="True" />
<AlternatingRowStyle BackColor="PaleGoldenrod" />
</asp:GridView>
<br />
<asp:Button ID="Button1" runat="server" BackColor="#C0C0FF" OnClick="Button1_Click"
Text="Create Excel" Width="137px" />
</div>
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
using System.Collections;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
CreateStructure();
this.gvFoods.DataSource = this.CreateData();
this.gvFoods.DataBind();
}
}
private DataTable CreateStructure()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("CategoryID", typeof(int)));
dt.Columns.Add(new DataColumn("CategoryName", typeof(string)));
dt.Columns.Add(new DataColumn("Price", typeof(int)));
return dt;
}
public DataSet CreateData()
{
DataSet ds = new DataSet();
DataTable dt = this.CreateStructure(); DataRow drNew = dt.NewRow();
drNew = dt.NewRow();
drNew["CategoryID"] = 1;
drNew["CategoryName"] = "Apple";
drNew["Price"] = 2;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 2;
drNew["CategoryName"] = "Banana";
drNew["Price"] = 3;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 3;
drNew["CategoryName"] = "Orange";
drNew["Price"] = 1;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 4;
drNew["CategoryName"] = "Radish";
drNew["Price"] = 2;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 5;
drNew["CategoryName"] = "Pen";
drNew["Price"] = 3;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 6;
drNew["CategoryName"] = "Pencil";
drNew["Price"] = 7;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 7;
drNew["CategoryName"] = "Ruler";
drNew["Price"] = 3;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 8;
drNew["CategoryName"] = "Eraser";
drNew["Price"] = 5;
dt.Rows.Add(drNew); ds.Tables.Add( dt );
return ds;
}
protected void Button1_Click(object sender, EventArgs e)
{
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
this.gvFoods.RenderControl(htw);
string strHtml = sw.ToString().Trim(); string ExcelFileName = "FoodList.xls";
string FilePhysicialPathName = Request.PhysicalApplicationPath;
//生成的Excel文件名
string objectExcelFileName = Path.Combine(FilePhysicialPathName, ExcelFileName); if( File.Exists( objectExcelFileName ))
{
File.Delete(objectExcelFileName);
}
FileStream fs = new FileStream(objectExcelFileName, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs, Encoding.GetEncoding("GB18030"));
bw.Write(strHtml);
bw.Close();
fs.Close(); }
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
}
<%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation="false" CodeFile="GridViewToExcelFile.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gvFoods" runat="server" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None" EnableViewState="true">
<FooterStyle BackColor="Tan" />
<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
<PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />
<HeaderStyle BackColor="Tan" Font-Bold="True" />
<AlternatingRowStyle BackColor="PaleGoldenrod" />
</asp:GridView>
<br />
<asp:Button ID="Button1" runat="server" BackColor="#C0C0FF" OnClick="Button1_Click"
Text="Create Excel" Width="137px" />
</div>
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
using System.Collections;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
CreateStructure();
this.gvFoods.DataSource = this.CreateData();
this.gvFoods.DataBind();
}
}
private DataTable CreateStructure()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("CategoryID", typeof(int)));
dt.Columns.Add(new DataColumn("CategoryName", typeof(string)));
dt.Columns.Add(new DataColumn("Price", typeof(int)));
return dt;
}
public DataSet CreateData()
{
DataSet ds = new DataSet();
DataTable dt = this.CreateStructure(); DataRow drNew = dt.NewRow();
drNew = dt.NewRow();
drNew["CategoryID"] = 1;
drNew["CategoryName"] = "Apple";
drNew["Price"] = 2;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 2;
drNew["CategoryName"] = "Banana";
drNew["Price"] = 3;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 3;
drNew["CategoryName"] = "Orange";
drNew["Price"] = 1;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 4;
drNew["CategoryName"] = "Radish";
drNew["Price"] = 2;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 5;
drNew["CategoryName"] = "Pen";
drNew["Price"] = 3;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 6;
drNew["CategoryName"] = "Pencil";
drNew["Price"] = 7;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 7;
drNew["CategoryName"] = "Ruler";
drNew["Price"] = 3;
dt.Rows.Add(drNew); drNew = dt.NewRow();
drNew["CategoryID"] = 8;
drNew["CategoryName"] = "Eraser";
drNew["Price"] = 5;
dt.Rows.Add(drNew); ds.Tables.Add( dt );
return ds;
}
protected void Button1_Click(object sender, EventArgs e)
{
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
this.gvFoods.RenderControl(htw);
string strHtml = sw.ToString().Trim(); string ExcelFileName = "FoodList.xls";
string FilePhysicialPathName = Request.PhysicalApplicationPath;
//生成的Excel文件名
string objectExcelFileName = Path.Combine(FilePhysicialPathName, ExcelFileName); if( File.Exists( objectExcelFileName ))
{
File.Delete(objectExcelFileName);
}
FileStream fs = new FileStream(objectExcelFileName, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs, Encoding.GetEncoding("GB18030"));
bw.Write(strHtml);
bw.Close();
fs.Close(); }
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
}
===============
在我这出现这个错误。
调试一下,在this.gvFoods.RenderControl(htw); 出现错误。
http://blog.csdn.net/net_lover/archive/2006/09/13/1217998.aspx
sb.Append(@"<TABLE>");
//添加表头
foreach (System.Data.DataRow row in DataSet.Tables[0].Rows)
{
sb.Append(@"<TR>");
foreach (System.Data.DataColumn column in DataSet.Tables[0].Columns)
{
sb.Append(@"<TD");
sb.Append(row[column.ColumnName]);
sb.Append(@"</TD");
}
sb.Append(@"</TR>");
}
sb.Append(@"<TABLE>");Response.Clear();
Response.Buffer = true;
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", "test"));
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.Write(sb.ToString());
Response.Flush();
Response.End();