积极答复者
如何给asp.net网页上的 “数据导入到excel表的代码” 添加一行中文列名

问题
-
以下是我使用Asp.net 和SQL数据库做成网页(如图1),然后把网页上的数据输出到Excel表中去的代码(代码1),我的问题是:我的SQL中各个字段都是以英文命名的,用GridView在网页显示时我把改成中文,但这段代码输出时,标题栏为英文。请问有什么办法给它变成中文标题么?如果是在SQL中用 "*** as 中文名",就会对我的其他代码造成影响,因此我希望能否在不改变SQL代码的情况下,改Excel表中的英文标题为中文标题呢?
我猜想可能直接在private void ExportExcel()中增加写入中文标题栏的代码应该是比较好实现的,可我尚未接触过此类代码,请大家帮忙看看,3Q!
---------------------------------------代码1-----------------------------------------
private void ExportExcel() { HttpContext curContext = System.Web.HttpContext.Current; System.IO.StringWriter strWriter = new StringWriter(); System.Web.UI.HtmlTextWriter htmlWriter = new HtmlTextWriter(strWriter); curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Response.ContentEncoding = Encoding.GetEncoding("GB2312"); curContext.Response.Charset = "GB2312"; GridView GV = new GridView();//一个无分页的GridView GV.DataSource = SqlDataSource_Search; GV.AllowPaging = false; GV.DataBind(); GV.RenderControl(htmlWriter); curContext.Response.Write(strWriter.ToString()); curContext.Response.End(); }
----------------------------------图1--------------------------------------
C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!
答案
-
谢谢您的解答,按照您的思路我解决了问题,但我没明白为什么要用
for (int i = 0; i < GV.HeaderRow.Cells.Count;i++ )
这个标题栏怎么能用到循环呢?
我直接用的
GV.HeaderRow.Cells[0].Text = "地址";
GV.HeaderRow.Cells[1].Text = "姓名";
GV.HeaderRow.Cells[2].Text = "金额";
是不是我理解得不够深?
C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!
上面说明设置方法 你可以把你的中文放到数组中方便修改
GV.DataBind();
String[] ChineseName = {"姓名","标题"} ;//更多字段,总数为GV.HeaderRow.Cells.Count
for (int i = 0; i < GV.HeaderRow.Cells.Count;i++ )
GV.HeaderRow.Cells[i].Text = ChineseName[i];
GV.RenderControl(htmlWriter);【孟子E章】
- 已标记为答案 linjiangxian11 2012年10月18日 4:25
全部回复
-
GV.DataBind(); for (int i = 0; i < GV.HeaderRow.Cells.Count;i++ ) GV.HeaderRow.Cells[i].Text = "中文"; GV.RenderControl(htmlWriter);
- 已建议为答案 ThankfulHeart 2012年10月18日 2:11
- 取消建议作为答案 ThankfulHeart 2012年10月18日 5:02
-
谢谢您的解答,按照您的思路我解决了问题,但我没明白为什么要用
for (int i = 0; i < GV.HeaderRow.Cells.Count;i++ )
这个标题栏怎么能用到循环呢?
我直接用的
GV.HeaderRow.Cells[0].Text = "地址";
GV.HeaderRow.Cells[1].Text = "姓名";
GV.HeaderRow.Cells[2].Text = "金额";
是不是我理解得不够深?
C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!
- 已建议为答案 ThankfulHeart 2012年10月18日 2:11
- 取消建议作为答案 linjiangxian11 2012年10月18日 4:22
-
谢谢您的解答,按照您的思路我解决了问题,但我没明白为什么要用
for (int i = 0; i < GV.HeaderRow.Cells.Count;i++ )
这个标题栏怎么能用到循环呢?
我直接用的
GV.HeaderRow.Cells[0].Text = "地址";
GV.HeaderRow.Cells[1].Text = "姓名";
GV.HeaderRow.Cells[2].Text = "金额";
是不是我理解得不够深?
C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!
上面说明设置方法 你可以把你的中文放到数组中方便修改
GV.DataBind();
String[] ChineseName = {"姓名","标题"} ;//更多字段,总数为GV.HeaderRow.Cells.Count
for (int i = 0; i < GV.HeaderRow.Cells.Count;i++ )
GV.HeaderRow.Cells[i].Text = ChineseName[i];
GV.RenderControl(htmlWriter);【孟子E章】
- 已标记为答案 linjiangxian11 2012年10月18日 4:25