[请教]关于GridView导出Excel/Word的样式问题!!

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

谢谢!
...全文
1505 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
一人前端 2008-11-17
  • 打赏
  • 举报
回复
期待中...
wzq6511 2007-09-12
  • 打赏
  • 举报
回复
http://blog.csdn.net/wzq6511/archive/2007/08/31/1767376.aspx
heqi915 2007-09-12
  • 打赏
  • 举报
回复
友情UP一下
龙宜坡 2007-09-12
  • 打赏
  • 举报
回复
再寻高手,若,不行,今晚结贴!
JustLovePro 2007-09-11
  • 打赏
  • 举报
回复
帮顶~
daishengs 2007-09-11
  • 打赏
  • 举报
回复
<script language="JavaScript">
function printpage(m_printpage1)
{
var newstr = document.getElementById(m_printpage1).innerHTML;
var oldstr = document.body.innerHTML;
document.body.innerHTML = newstr;
window.print();
document.body.innerHTML = oldstr;
return false;
}
</script>
<div><A onclick="printpage('contentDiv');" href="#">[打印]</A></div>
<div id="contentDiv" style="BACKGROUND-COLOR: #00ccff">
要打印的内容
</div>
龙宜坡 2007-09-11
  • 打赏
  • 举报
回复
等待回答!!!
龙宜坡 2007-09-10
  • 打赏
  • 举报
回复
难道真米有更好解决办法了么?
chuxue1342 2007-09-10
  • 打赏
  • 举报
回复
帮顶!
hy_lihuan 2007-09-10
  • 打赏
  • 举报
回复
lz处理问题还是挺仔细的嘛;佩服一下
songle912 2007-09-10
  • 打赏
  • 举报
回复
Eddie005(♂) №.零零伍 (♂) ( ) 信誉:121 2007-09-08 11:55:05 得分: 0


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


-----------------------------------------------
我觉得最后都可以不用恢复的,导出完毕会刷新页面,自动就恢复了,活活
龙宜坡 2007-09-10
  • 打赏
  • 举报
回复
首先,谢谢大家的回复!这几天忙于找工作,没顾及此贴,见谅!

总结下大家的解答:
--------------------------------------------------------------------
1.导出的文件不带任何样式,而页面上GridView样式不变?
解:我说的意思是有没有一个方法false掉GridView的所有样式定义,导出完成后再恢复样式为true,看来没有这么简单!我的想法有点天真。。
--yuan74521940()
类似的代码我找了很多,都大同小异,不够你写的更正规,再次感谢!
--Eddie005(♂) №.零零伍 (♂)
看见你的星星让我不禁仰慕,我现在用的就是你说的“笨办法”,不过还是希望有更好的方法可以解决,谢谢!
------------------------------------------------------------------------
2.自定义导出文件的样式(如Excel),同样保持页面上GridView样式不变?
解:我本意是直接在*.aspx.cs中用代码定义*.XLS(如Excel)的样式,答案仅限于次
--lbq1221119(blog.sina.com.cn/byhh)
--这个很简单啊 Excel里面单元格的格式和样式是可以设定的
你用一个for循环全部给Excel的cell指定一个样式不就Ok了
若能够实现,请给出点代码,只关键的几行也行,好让我得到点启发,将万分感谢!
--net_lover(【孟子E章】)
--Excel/Word毕竟不是网页,有些效果两者直接不能相互替代的。只能实现一些基本的样
式,不要期望两者的样式完全一致
以前您帮过我,不过您的回答让我对此问题失望,再次感谢您!
----------------------------------------------------------------------
3.打印问题,在当前页面只打印GridView中指定内容(如按钮就没有必要打印出来),并自定义表头信息,打开一个预览页也可以,需要不再次访问数据库?
解:--lbq1221119(blog.sina.com.cn/byhh)
--打印问题,这个打印的是页面显示的内容,不能指定什么打什么
以前再ASP中用预览页解决了此问题,不过要传一些参数,再次访问数据库得以解决;在ASP.NET
中看到过页面局部打印的一些文章,苦于寻求代码!

再次希望所有问题得以解决,谢谢大家的回复!
vainnetwork 2007-09-09
  • 打赏
  • 举报
回复
关注
孟子E章 2007-09-09
  • 打赏
  • 举报
回复
Excel/Word毕竟不是网页,有些效果两者直接不能相互替代的。只能实现一些基本的样式,不要期望两者的样式完全一致
heqi915 2007-09-09
  • 打赏
  • 举报
回复
楼上说得有一定的道理,不过要是没有以部分的代码,也没有多大效果的
yuan74521940 2007-09-09
  • 打赏
  • 举报
回复
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 );
}
}

主要还是看自己!!依靠代码没什么用!!
龙宜坡 2007-09-09
  • 打赏
  • 举报
回复
...
Eddie005 2007-09-08
  • 打赏
  • 举报
回复
有个简单的苯办法:点击导出按钮时,先移除GridView的样式,并隐藏不必要的控件,再导出Excel,最后恢复样式
龙宜坡 2007-09-08
  • 打赏
  • 举报
回复
谢谢楼上!
ASP.NET初学,请以代码赐教!
lsq667 2007-09-08
  • 打赏
  • 举报
回复
关注下了~~没接触过这方面的东西~~
只能帮顶了~~~
加载更多回复(2)

62,244

社区成员

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

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

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

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