明确得说,不用ActiveXObject是不可能的,而且用ActiveXObject还很麻烦,问题又多
建议采用以下方案:
先用 poi 或者 jxl 将excel 内容读取出来,显示在页面上
然后在页面底部增加一段js
<script type="text/javascript">window.print()
</script>
这个方案必须把页面做成跟excel打印出来的页面风格很像,像到以假乱真,让客户看不出来,这样的话客户以为是直接用excel来预览,效果做到争取跟excel打印出来一模一样。这样做
满足了客户的需求,客户才不管你是不是真的用excel来预览,他只关心预览的样子是不是跟最后打印出来的一样
你也实现了功能
报表打印不是调用JS完成的,而是通过Java操作Excel进行报表打印的,常用的一般为POI比较多。功能较为强大,包括数据的导入到处,都可以完成,需要的话扣我给你例子,你对照着改改就可以导出数据,并且已经设置好Excel的样式了前台页面看是b/s程序看如果是b/s程序那打印就是在服务端接的打印机里打印出来,这个时候最好是不要有预览,否则服务程序就挂起来了不会继续执行。
如果是在前台打印那使用js来操作。你点击按钮后,后台读取excel文件并用一个页面显示出预览效果,再用js自动调用页面的打印就可以在前台电脑带的打印机打印出来了。