报表打印的实现(到打印机或Office文件上|用JS或C#)

看到网友写的打印方法,觉得错,转载如下:( http://blog.sina.com.cn/s/blog_531101430100lciy.html
A、首先把数据库里的数据拿出来,为了便捷,咱们这里用GridView和SQLDataSource来把Fruit表的数据显示出来。见 界面显示 图:在下面。
B、開始我們的打印,我們的打印分為這麼幾種類型的打印。首先用JavaScript實現打印:
打印過程中全部用JavaScript實現。在页面上首先加上一个按钮。给按钮的OnclientClick事件添加代码
:OnclientClick="Printdoc();return false;"我们调用的函数是
    <script language="javascript">
    function printdoc()
    {
         window.print();//就这一句核心JavaScript代码就实现打印了!
    }
    </script>
C、在浏览器中可以对页面进行设置:
修改一:浏览器--》页面设置(不要打印页面的页眉部分)
修改二:IE--》高级--》打印--》打印背景颜色和图像(勾上)
D、这种方式是把页面的body中的内容都给显示出来了。如果我们不想打印页面的页眉部分和页脚部分的话,这样我们就需要进行一系列的设置了。
首先加上多个Class名称一样的div标记。这些div标记针对的内容就是我不想要打印出来但是想要在页面中显示出来的内容。
例如:我不想打印页脚部分的内容:给不想打印的页脚部分设置一个Class="noprint"(名字随便起)。这时候div就有了,Class名为noprint,把Class属性设为一个Class名是可以的做法,于是我们可以对我们不想打印的所有的内容的所在的div的Class属性设置为同样的名称。
然后对我们设置的这些Class属性的div进行控制,用的就是样式表。这时候样式表只针对于打印起作用,而不针对其它功能,所以样式表我们的写法和其它时候也有点区别:
     <style type="text/css" media="print">
    .noprint
    {
      display:none;//不显示。
    }
    </style>
F、如果要是对其它样式起作用,样式表就不能我们上面创建的那个样式表里面了,因为上面的样式表针对的是我们的打印操作,需要我们再来创建一对样式表标记,然后在那里面写内容。也就是单独在写一个style,不要再写在上一个style里面了。
以上是window.print();打印页面,div中的Class可以设置多个名称也就是我的div中的Class属性可以设置多个值,中间用空格隔开。
例如:<div class="noprint headertitle">//中间用空格隔开。
以上为页面打印和局部页面打印,别我说了这么多大家都不知道这是在哪里操作的,把内容通过打印机打印出去,打印到纸上了。
---------------------------------------------------------------------
下面说如何往Excel表格中打印数据。
第一种做法:用C#代码控制服务器中,在服务器中生成Excel文档,打印或下载即可。
第二种做法:在客户端用JavaScript把用户的Excel启动。
(1)下面先说第一种:C#代码作为网站没有必要操作Excel或Word,例如公司的web服务器(假如说数据库不放在服务器中),不可能去装上一个Office,一个合格的.NET服务器首先装系统(一般装的都是微软的Windows系统),然后为系统打补丁,默认IIS服务器没有安装的话,需要安装IIS服务器。然后安装.NET框架,不用安装Visual Stadio,因为Visual Stadio是开发环境,在这里我们只需要运行环境,也就是只需 要.NET框架。
(2)服务器中Office没有必要安装上,把这些东西配置到web服务器中显得非常凌乱。所以这么一分析,如果我们的服务器中没有安装Office,我们再来把我们的内容打印到服务器中,让服务器去解析Word或Excel文档,显得不现实了。C#代码在服务器中打开Word,不可能,如果在服务器中打开Word文档,首先确保服务器中一定有Office安装上了,而服务器中压根没有安装Office,所以直接用C#代码在服务器中打开Word不行。
(3)如果把文件放入服务器中还是可以的,通过的就是我们以前序列化当中提到的FileStream操纵字节流, StreamWriter 操纵字符流。
向服务器中写文件,把文件的拓展名改成.DOC或者.Exl即可,这样就存入成功了。在文件中除了把我们要打印进去的页面当中的内容以外还需要按照Word和Excel文档的风格,这里就太感谢微软了,微软在这方面非常强大:
微软做的一系列软件的兼容性是很好很好的,微软的操作系统,微软的.NET,微软的OFfice,微软的浏览器都彼此兼容,
太好了,那么这样我们在Word文档中写入到饿内容就可以用HTML来表示了,我们按照Word的写入标准,也就是我们创建静态页面的写入标准!怎么办? 报表打印的实现(到打印机或Office文件上|用JS或C#)
我们这里要写入Table表格,那么我们就写一对Table标记即可!IE能够打开的东西,所识别的那些HTML代码,Office也能够打开,把这个Table表格放入到Word中,在浏览器中也能够显示出来。
具体代码我截成了图片。
(4)第二种用JavaScript代码写入到Office文档中,代码截图了,没什么可说的。
G、把页面的某一块内容贴到Word当中,这类似于什么呢,类似于火车票的打印或者饭票的打印,信封的打印等等。提示一下:用书签确定在Word文档中哪个位置写东西,这个得熟悉Word文档,在Word中怎样给某个位置创建标签。Word文档中路径放入到隐藏域中。把TextBox中的值取出来,放入到当前活动的Word页面中的对应的书签中。详见我截的老师的文章的最后一张图:
---------------- 以下为全部参考图片 报表打印的实现(到打印机或Office文件上|用JS或C#) (哪有这么全的)-------------------
界面显示:
报表打印的实现(到打印机或Office文件上|用JS或C#)
做法一代码:用Javascript代码把内容写入到Excel文档中的JavaScript代码。
报表打印的实现(到打印机或Office文件上|用JS或C#)
做法二代码:用C#把内容写入到Excel文档中的C#代码:
报表打印的实现(到打印机或Office文件上|用JS或C#)
打开生成的Excel表格,把数据给我们展现出来了:
报表打印的实现(到打印机或Office文件上|用JS或C#)

--------------------------- 以下为老师的文件---------------------------
用JavaScript把内容写入到Excel表格中的操作及代码第一部分:
报表打印的实现(到打印机或Office文件上|用JS或C#)
用JavaScript把内容写入到Excel表格中的操作及代码第二部分:
报表打印的实现(到打印机或Office文件上|用JS或C#)
用C#代码输入到Word或Excel文档的操作和代码,第一部分:
报表打印的实现(到打印机或Office文件上|用JS或C#)
用C#代码输入到Word或Excel文档的操作和代码,第二部分:
报表打印的实现(到打印机或Office文件上|用JS或C#)
实现信封的打印、饭票的打印、火车票的打印的操作(很完整):
报表打印的实现(到打印机或Office文件上|用JS或C#)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值