2

我正在使用 EPPLUS 允许用户将数据下载到 Excel。但是,我想添加一个功能,他们可以选择打印这些数据而不是下载它。我们可以从 EPPLus 发出打印命令吗?

4

1 回答 1

6

这是一个网络应用程序

啊,所以主要问题来了...您知道,即使 EPPlus 有打印方法,它也无济于事,因为它会尝试在服务器端触发打印对话框,但是您需要发送通过 Internet 向客户端发送文件。所以恐怕答案是no,客户肯定必须以任何一种方式下载文件才能打印它。

此外,xlsx 不能在 Web 浏览器中轻松打开(例如,与 pdf 相比),因此以某种方式在客户端 pc 上触发打印机对话框的解决方案将有点困难。由于安全问题,C# 无法使用 asp.net 通过 Internet 触发任何内容,而且我不确定 javascript 是否有足够的权限打开 Excel 文件的应用程序并开始打印过程。

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

于 2013-04-04T15:31:11.593 回答