2013-04-04 334 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