日期:2014-05-18  浏览次数:20464 次

[请教]关于GridView导出Excel/Word的样式问题!!
GridView导出Excel/Word时,总是把样式(如背景色,字体)也一并导出!
初学ASP.NET!
问题:
1.导出的文件不带任何样式,而页面上GridView样式不变?
2.自定义导出文件的样式(如Excel),同样保持页面上GridView样式不变?
3.打印问题,在当前页面只打印GridView中指定内容(如按钮就没有必要打印出来),并自定义表头信息,打开一个预览页也可以,需要不再次访问数据库?

谢谢!

------解决方案--------------------
这个很简单啊 Excel里面单元格的格式和样式是可以设定的
你用一个for循环全部给Excel的cell指定一个样式不就Ok了
------解决方案--------------------
关注下了~~没接触过这方面的东西~~
只能帮顶了~~~
------解决方案--------------------
有个简单的苯办法:点击导出按钮时,先移除GridView的样式,并隐藏不必要的控件,再导出Excel,最后恢复样式
------解决方案--------------------
private void ExportExcelFromDataGrid
( string filename , System.Web.UI.WebControls.DataGrid ToExcelGrid )
...{
Response.Clear();
Response.Buffer= true;
Response.Charset= "utf-8 ";
Response.AppendHeader ( "Content-Disposition ", "attachment;filename= "+Server.UrlEncode ( filename ) );
Response.ContentEncoding=System.Text.Encoding.Default;//设置输出流为简体中文
Response.ContentType = "application/ms-excel ";//设置输出文件类型为excel文件。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad =
new System.Globalization.CultureInfo( "ZH-CN ",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter =
new System.Web.UI.HtmlTextWriter(oStringWriter);
ToExcelGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}

private void Button4_Click(object sender, System.EventArgs e)
...{
this.Panel1.Visible = false;
string filename = "内训师.xls ";
this.DataGrid1.Columns[6].Visible = true;
this.DataGrid1.Columns[7].Visible = true;
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-1].Visible = false; // *
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-2].Visible = false; // *
this.DataGrid1.AllowSorting = false; // *
this.DataGrid1.AllowPaging = false;
this.DataGrid1.SelectedIndex = -1; // *
this.BindGrid();
this.ExportExcelFromDataGrid ( filename , this.DataGrid1 );
}
}

主要还是看自己!!依靠代码没什么用!!
------解决方案--------------------
楼上说得有一定的道理,不过要是没有以部分的代码,也没有多大效果的
------解决方案--------------------
Excel/Word毕竟不是网页,有些效果两者直接不能相互替代的。只能实现一些基本的样式,不要期望两者的样式完全一致
------解决方案--------------------
关注
------解决方案--------------------
Eddie005(♂) №.零零伍 (♂) ( ) 信誉:121 2007-09-08 11:55:05 得分: 0


有个简单的苯办法:点击导出按钮时,先移除GridView的样式,并隐藏不必要的控件,再导出Excel,最后恢复样式


-----------------------------------------------
我觉得最后都可以不用恢复的,导出完毕会刷新页面,自动就恢复了,活活
------解决方案--------------------
lz处理问题还是挺仔细的嘛;佩服一下