WEB页面同时实现两种打印(下载Excel,页面直接打印)
1,下载Excel(参考昊子收藏夹)
private void BtnPrint_Click(object sender, System.EventArgs e)
{
BtnSubmit_Click(sender,e);
PrintTable(Table1);
}
因为最开始用的是Table输出,无法返回StateView,所以提交打印的时候需要重新输出一遍Table的内容(效率很低)然后从Table中把内容导出并输出到客户端
2,页面直接打印
在打印页面添加html代码
<STYLE media=print>
.Noprint{display:none;}
.PageNext{page-break-after: always;}
</STYLE> 然后在导航内容加上Class属性
<table cellSpacing="0" cellPadding="0" width="100%" border="0" class=noprint>这样可以只输出报表,而不打印导航栏内容
在页面添加WebBrowser对象
<OBJECT id=WebBrowser height=0 width=0 classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 VIEWASTEXT> </OBJECT>
![]()
注意有时VS会自动添加对象的参数,如果使用对象的页出错,请删除自动添加的参数值
添加按钮
<INPUT TYPE=button VALUE=打印页面 onclick=document.all.WebBrowser.ExecWB(7,1)>
1
public void PrintTable(System.Web.UI.WebControls.Table table)
2
{
3
System.IO.StringWriter SW=new System.IO.StringWriter();
4
foreach(TableRow r in table.Rows)
5
{
6
foreach(TableCell c in r.Cells)
7
{
8
SW.Write(c.Text+"\t");
9
}
10
SW.Write("\n");
11
}
12
SW.Close();
13
Response.AddHeader("Content-Disposition", "attachment; filename=Table.xls");
14
Response.ContentType = "application/ms-excel";
15
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
16
Response.Write(SW);
17
Response.End();
18
}
public void PrintTable(System.Web.UI.WebControls.Table table)2
{3
System.IO.StringWriter SW=new System.IO.StringWriter();4
foreach(TableRow r in table.Rows)5
{6
foreach(TableCell c in r.Cells)7
{8
SW.Write(c.Text+"\t");9
}10
SW.Write("\n");11
}12
SW.Close();13
Response.AddHeader("Content-Disposition", "attachment; filename=Table.xls"); 14
Response.ContentType = "application/ms-excel"; 15
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312"); 16
Response.Write(SW); 17
Response.End();18
}
private void BtnPrint_Click(object sender, System.EventArgs e)
{
BtnSubmit_Click(sender,e);
PrintTable(Table1);
}因为最开始用的是Table输出,无法返回StateView,所以提交打印的时候需要重新输出一遍Table的内容(效率很低)然后从Table中把内容导出并输出到客户端
2,页面直接打印
在打印页面添加html代码
<STYLE media=print>
.Noprint{display:none;}
.PageNext{page-break-after: always;}
</STYLE>
<table cellSpacing="0" cellPadding="0" width="100%" border="0" class=noprint>在页面添加WebBrowser对象
<OBJECT id=WebBrowser height=0 width=0 classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 VIEWASTEXT> </OBJECT>
注意有时VS会自动添加对象的参数,如果使用对象的页出错,请删除自动添加的参数值
添加按钮
<INPUT TYPE=button VALUE=打印页面 onclick=document.all.WebBrowser.ExecWB(7,1)>其实是打印预览按钮
注意事项
1,点击过下载Excel按钮之后再点打印页面会出错,客户端会提示"错误: 没有权限",不知道为什么
2,使用WebBrowser对象时要求客户端设置“对没有标记为安全的ActiveX控件进行初始化”

浙公网安备 33010602011771号