关于ASP.NET导出数据到EXCEL,保存、打开、直接打印的问题

breezekey 2012-04-26 07:44:24
报表很复杂,很大,如果要正常打的话,可能A3纸都打不下,而且报表格式极不规则。

现在向大家寻求解决方法,先说说我们这边的一个实际需求(情况):

1、这种报表我们是通过aspx页面呈现的,但是页面横向竖向都有很长的滚动条,

这样就导致直接打印页面不好打,所以只能另求他法。

2、要求可以直接打印报表,即在页面上放置一个“打印”按钮,能将报表直接打印出来(非直接打印页面的方式)

3、要求可以直接保存报表为excel文件,即在页面上放置一个“保存”按钮,点击后弹出对话框

在对话框中可以选择“打开”、“保存”,如果选择的是“打开”的话就直接打开,如果选择的是保存

就让用户选择保存位置,然后保存到本地。


目前我同事的做法是通过Microsoft.Office.Interop.Excel来实现的,每次打印报表的时候都在服务器开启

一个进程,然后在将数据输入到excel中,最后打印(直接打印,整个过程不出excel界面),但是打印完了

又关闭不了excel进程(需要在web.config中配置identity才能关闭)。


不知道大家有没有做过这方面的开发,或者说对此有所了解的,希望大家能帮帮忙,看看您有没有什么好的方式,

或者其他比较好的思路可以解决这个问题,不胜感激。

PS: 在操作excel的时候还要考虑版本的兼容性等问题。

还需要考虑的是把程序放在服务器上可能出现的其他(如权限设置等)问题。

如果有比较完整的参照代码更好。

谢谢!

...全文
386 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
breezekey 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

报表很复杂,很大 多大?
[/Quote]

整个生产过程的数据,包括化验室等等的数据
breezekey 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

去看一下这个NPOI开源组件
是否可行。使用它不错 比用Microsoft.Office.Interop.Excel资源小多了!
[/Quote]

下来去看看
breezekey 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

你可以采用 Grid++Report 这种打印,你先去学习下这个找到Grid++Report 官网学习他的用法,这个很不错!
[/Quote]

好的,先去了解下
arecaiz 2012-04-27
  • 打赏
  • 举报
回复
去看一下这个NPOI开源组件
是否可行。使用它不错 比用Microsoft.Office.Interop.Excel资源小多了!
ShenWong 2012-04-27
  • 打赏
  • 举报
回复
报表很复杂,很大 多大?
Ryan20082009 2012-04-27
  • 打赏
  • 举报
回复
你可以采用 Grid++Report 这种打印,你先去学习下这个找到Grid++Report 官网学习他的用法,这个很不错!
arecaiz 2012-04-27
  • 打赏
  • 举报
回复
目前我同事的做法是通过Microsoft.Office.Interop.Excel来实现的,每次打印报表的时候都在服务器开启

一个进程,然后在将数据输入到excel中,最后打印(直接打印,整个过程不出excel界面),但是打印完了

又关闭不了excel进程(需要在web.config中配置identity才能关闭)。


这样是OK的 只要权限配置正确是可以自动关闭进程的。

但我自己做时出现这样问题就是如果服务器有直接打开Excel操作会报错。
breezekey 2012-04-27
  • 打赏
  • 举报
回复
无人问津啊
breezekey 2012-04-26
  • 打赏
  • 举报
回复
有没有好方法或者思路可以供参考呢?

62,267

社区成员

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

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

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

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