2013-04-04 302 views
1

我使用EPPLUS来允许用户将数据下载到Excel。 但是,我想添加一项功能,只需选择打印此数据而不是下载它。我们可以从EPPLus发出打印命令吗?在EPPlus中打印命令?

+0

不是我所知道的。使用C#打印文档的常规方法是否有任何问题? – walther 2013-04-04 14:52:09

+0

@walther说实话,我不知道在C#中打印“常规方式”是什么。我正在使用JavaScript来打印,但有一些限制,这里记录 - http://stackoverflow.com/questions/15798401/printing-horizo​​ntally-scrolling-content-onto-the-next-page-possible。 编辑:这就是我想在Excel中打印的原因,所以我可以克服水平滚动问题。 – neuDev33 2013-04-04 14:55:15

+0

这是什么类型的应用程序?网页,桌面......? – walther 2013-04-04 15:08:31

回答

5

这是一个Web应用程序

啊,所以主要的问题是......你知道,即使EPPlus有印刷的方法,它不会帮助你,因为它会尝试在服务器端触发打印对话框,但需要通过Internet将文件发送到客户端。所以恐怕答案是no,客户必须以任何方式下载文件才能打印它。

此外,xlsx不能在Web浏览器中轻松打开(与PDF相比),因此以某种方式在客户端PC上触发打印机对话框的解决方案有点困难。因为安全问题,C#不能通过因特网触发任何事情,我不确定是否有足够的权限打开Excel文件的应用程序并启动打印过程。

也许你的解决方案将创建一个PDF文件而不是XLSX,将其作为网站/响应的一部分发送给客户端,并使用javascript打印文件。 PDF现在可以在大多数浏览器中打开,并且我们有一个不错的js功能printWithDialog()。我相信这对xls不起作用,并且它“无需下载”肯定不能满足您的要求。客户必须在打印文件之前才能访问该文件,但无法克服此问题。

+0

谢谢@walther!这是一个很好的解释! – neuDev33 2013-04-04 19:25:10