GridView 导出成Excel 死活找不到问题所在

simhare 2007-02-06 08:45:23
导出的excel在Header下面无缘无故多出来一行
关键方法
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].Attributes.Add("style", "vnd.ms-excel.numberformat:@;");
}
switch (e.Row.RowType)
{
case DataControlRowType.Header:
//第一行的表头
TableCellCollection tcHeader = e.Row.Cells;//retrun TablecellCollection get a collection of TableCell object that represents the cells of a row (in a Table Control)
tcHeader.Clear();
tcHeader.Add(new TableHeaderCell());
tcHeader[0].Attributes.Add("colspan", "4"); //跨Column
tcHeader[0].Text = "CheckList for AMS Information -LCL";

tcHeader.Add(new TableHeaderCell());
tcHeader[1].Attributes.Add("colspan", "1");
tcHeader[1].Text = "Date:" + DateTime.Now.ToString("MMM.dd", new System.Globalization.CultureInfo("en-GB")) + "</th></tr><tr>";// + "</th></tr><tr>";加?
break;
case DataControlRowType.DataRow:

TableCell tc = new TableCell();


//tc.Attributes.Add("colspan", "2");
tc.Attributes.Add("colspan", "3");//
//tc.AssociatedHeaderCellID = ;
tc.Text = "Vessel/Voyage";


e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#FFC080'");

e.Row.HorizontalAlign =HorizontalAlign.Center;

e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#ffffff'");


break;

}//Switch End()
}//GridView1_RowDataBound End()
...全文
264 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
simhare 2007-02-06
  • 打赏
  • 举报
回复
没有设置ShowFooter=true
simhare 2007-02-06
  • 打赏
  • 举报
回复
没有数据是空的一行
simhare 2007-02-06
  • 打赏
  • 举报
回复
“导出到Excel”按钮的事件:
protected void Button1_Click(object sender, EventArgs e)
{
GridView1.AllowPaging = false;
GridView1.AllowSorting = false;

Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");

Response.ContentEncoding = System.Text.Encoding.UTF7;//return encoding get or set the http charater set of the output stream
Response.ContentType = "application/ms-excel";//get or set the http MIME type of the output stream

StringWriter oStringWriter = new StringWriter();
HtmlTextWriter oHtmlWriter = new HtmlTextWriter(oStringWriter);

this.GridView1.RenderControl(oHtmlWriter);
Response.Output.Write(oStringWriter.ToString());

Response.Flush();
Response.End();

}
孟子E章 2007-02-06
  • 打赏
  • 举报
回复
多出的一行有数据吗?
是不是GridView1设置了SHowFooter=true了?
simhare 2007-02-06
  • 打赏
  • 举报
回复
CreateDataSource:
public ICollection CreateDataSource()
{
string strVesselVoyage = string.Empty;
string strCarrier = string.Empty;
string strHBL = string.Empty;
string strClosingDate = string.Empty;
string strOnboardDate = string.Empty;
string strShipper = string.Empty;
string strConsignee = string.Empty;
string strDescription = string.Empty;
string strBookingNO = string.Empty;
string strSO = string.Empty;

string strConn = ConfigurationManager.ConnectionStrings["dsn"].ConnectionString;
SqlConnection conn = new SqlConnection(strConn);
string strSql = @"SELECT dbo.Hou.Vessel_Voyage, dbo.CompanyDetails.Company_Name AS Carrier,
dbo.Hou.Closing_Date, dbo.Hou.Loading_ATD
FROM dbo.Hou LEFT OUTER JOIN
dbo.CompanyDetails ON dbo.Hou.Carrier = dbo.CompanyDetails.Account_ID
WHERE dbo.Hou.Hou_id =" + Request.QueryString["hou_id"];
SqlCommand comm = new SqlCommand(strSql, conn);
conn.Open();
SqlDataReader sdr = comm.ExecuteReader();
while (sdr.Read())
{
strVesselVoyage = sdr["Vessel_Voyage"].ToString();
strCarrier = sdr["Carrier"].ToString();
strClosingDate = sdr["Closing_Date"].ToString();
strOnboardDate = sdr["loading_ATD"].ToString();

}
sdr.Close();
conn.Close();
DataTable dt = new DataTable();
//没有column 无法定位dr
DataColumn dc;
DataRow dr;
dc = new DataColumn("VesselVoyage", typeof(String));
dt.Columns.Add(dc);
dc = new DataColumn("strVesselVoyage", typeof(String));
dt.Columns.Add(dc);
dc = new DataColumn("Carrier", typeof(String));
dt.Columns.Add(dc);
dc = new DataColumn("strCarrier", typeof(String));
dt.Columns.Add(dc);

dr = dt.NewRow();
dr["VesselVoyage"] = "Vessel/Voyage:";
dr["strVesselVoyage"] = strVesselVoyage;
dr["Carrier"] = "Carrier:";
dr["strCarrier"] = strCarrier;
dt.Rows.Add(dr);
/*-------------------------------------------------------second line---------------*/

dc = new DataColumn("ClosingDate", typeof(String));
dt.Columns.Add(dc);
dc = new DataColumn("strClosingDate", typeof(String));
dt.Columns.Add(dc);
dc = new DataColumn("onBoardDate", typeof(String));
dt.Columns.Add(dc);
dc = new DataColumn("stronBoardDate", typeof(String));
dt.Columns.Add(dc);

dr = dt.NewRow();
dr[0] = "Closing Date:";
dr[1] = strClosingDate;
dr[2] = "On Board Date:";
dr[3] = strOnboardDate;
dt.Rows.Add(dr);

/*-----------------------------------------------------third line-----------------*/

dc = new DataColumn("S/O", typeof(String));
dt.Columns.Add(dc);
dc = new DataColumn("HB/LNO", typeof(String));
dt.Columns.Add(dc);
dc = new DataColumn("Shipper", typeof(String));
dt.Columns.Add(dc);
dc = new DataColumn("Consignee", typeof(String));
dt.Columns.Add(dc);
dc = new DataColumn("Description", typeof(String));
dt.Columns.Add(dc);

dr = dt.NewRow();
dr[0] = "S/O#.";
dr[1] = "HB/L NO.";
dr[2] = "SHIPPER";
dr[3] = "CONSIGNEE";
dr[4] = "DESCRIPTION";
dt.Rows.Add(dr);
/*-----------------------------------------------------记录列表------------*/
//再次建立连接,读取记录条数

strSql = @"SELECT dbo.Hou.Booking_NO, dbo.Hou.House_B_L_NO,
tblShipper.Company_Name AS Shipper, tblConsignee.Company_Name AS Consignee,
dbo.Description_of_Package.Description_of_Package
FROM dbo.Hou LEFT OUTER JOIN
dbo.Description_of_Package ON
dbo.Hou.Description_Drop = dbo.Description_of_Package.Description_of_Package_id LEFT
OUTER JOIN
dbo.CompanyDetails tblConsignee ON
dbo.Hou.Consignee = tblConsignee.Account_ID LEFT OUTER JOIN
dbo.CompanyDetails tblShipper ON dbo.Hou.Shipper = tblShipper.Account_ID
WHERE dbo.Hou.Hou_id =" + Request.QueryString["hou_id"];

conn = new SqlConnection(strConn);
conn.Open();
comm = new SqlCommand(strSql, conn);
sdr = comm.ExecuteReader();

dt.Columns.Add(new DataColumn("BookingNO", typeof(string)));
dt.Columns.Add(new DataColumn("HBLNO", typeof(string)));
dt.Columns.Add(new DataColumn("ShipperList", typeof(string)));
dt.Columns.Add(new DataColumn("ConsigneeList", typeof(string)));
dt.Columns.Add(new DataColumn("DescriptionList", typeof(string)));

while (sdr.Read())
{
DataRow drRecord;
drRecord = dt.NewRow();

strSO = sdr["booking_NO"].ToString();
strHBL = sdr["House_B_L_NO"].ToString();
strShipper = sdr["Shipper"].ToString();
strConsignee = sdr["Consignee"].ToString();
strDescription = sdr["Description_of_Package"].ToString();

drRecord[0] = strSO;
drRecord[1] = strHBL;
drRecord[2] = strShipper;
drRecord[3] = strConsignee;
drRecord[4] = strDescription;

dt.Rows.Add(drRecord);

}
sdr.Close();
conn.Close();
DataView dv = new DataView(dt);
return dv;

}
simhare 2007-02-06
  • 打赏
  • 举报
回复
createDataSource() 做数据源
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridView1.BorderWidth = Unit.Pixel(2);
GridView1.BorderColor = System.Drawing.Color.DarkOrange;
GridView1.DataSource = CreateDataSource();
GridView1.DataBind();

}
}
内容概要:LTK8319是一款单通道H桥有刷直流电机驱动器,工作电压范围为2.5V至12V,支持最高3.9A的峰值电流和2.5A的平均电流驱动能力,适用于小家电、玩具、电子锁、机器人等小型电动设备。该芯片通过两个逻辑输入(INA和INB)控制电机的正转、反转、停止与刹车,并支持PWM调速控制。集欠压锁定(UVLO)、过温保护(TSD)及自动故障恢复功能,确保系统安全可靠运行。当INA和INB持续为低电平时,芯片进入低功耗休眠模式,显著降低静态功耗。采用ESOP-8封装,符合环保无铅标准。; 适合人群:电子工程师、嵌入式系统开发者、电机控制技术人员,以及从事小型机电产品研发的设计人员;具备基本电路知识和电机控制经验者更佳。; 使用场景及目标:①用于驱动小型有刷直流电机或步进电机的一个绕组,实现精确的方向与速度控制;②适用于电池供电设备中对功耗敏感的应用,利用休眠模式延长续航时间;③在电机启停频繁、负载波动大的场合,发挥其电流控制与保护机制优势,提升系统稳定性。; 阅读建议:此文档提供了详细的电气特性、功能逻辑表、保护机制与时序参数,建议结合典型应用电路进行硬件设计,并重点关注电源去耦电容选型、散热布局及PWM频率设置(不超过100kHz),以确保系统可靠运行。
内容概要:本文研究了一种基于遗传算法(GA)与粒子群优化算法(PSO)融合的无人机三维路径规划方法,旨在解决复杂环境中无人机避障与路径优化的问题。通过构建三维空间环境模型,提出一种结合GA全局搜索能力强与PSO收敛速度快优势的混合优化策略,并利用Matlab平台完算法仿真与路径可视化。研究不仅实现了无人机在存在多个障碍物场景下的安全、高效飞行路径规划,还对GA与PSO两种算法在路径长度、计算耗时、收敛稳定性等方面进行了对比分析,评估其性能差异,为实际应用中算法选型提供依据。; 适合人群:具备一定算法设计基础和Matlab编程能力的科研人员、自动化与人工智能方向的研究生,以及从事无人机导航、智能控制等相关领域的工程技术人员。; 使用场景及目标:①应用于城市密集建筑区、山地森林等复杂地形中的无人机自主巡检与应急救援任务;②为智能交通、地理测绘、灾害监测等需要自主路径决策的无人系统提供算法支持与仿真验证;③通过对比不同智能优化算法的表现,辅助研究人员在特定应用场景下选择最优路径规划方案。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实验,调整种群规模、迭代次数、障碍物分布等参数,深入理解算法运行机制与性能表现,并可进一步拓展至动态环境更新、多无人机协同避障等更复杂的研究方向。

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧