【问题标题】:How to print excel file from java?如何从java打印excel文件?
【发布时间】:2014-01-03 17:27:43
【问题描述】:

社区的第一个问题!

让我稍微解释一下这个问题。

我有一个用户界面,允许我创建一个 Excel 文件。我想在那个用户界面上添加一个“打印文档”按钮。此按钮应该允许用户打印该 excel 文档。所以我需要一种方法来调用该文件的 Windows 打印对话框,以便用户可以打印该文件。

我已阅读http://docs.oracle.com/javase/tutorial/2d/printing/printable.html,但我找不到告诉打印对话框要打印什么文件的方法。

提前致谢!

【问题讨论】:

  • 我认为您要问的是特定于操作系统的事情。您希望您的应用程序触发 Excel 打开文件并打印它。所以你必须问自己:在 Windows 中有没有办法从命令行打印 Excel 文档?另一种选择是在应用程序中加载 Excel 文件,然后从那里打印。 API 有几个,我认为 POI 是一个,JExcelAPI 是另一个。
  • 感谢您的投入。这个想法将打开打印对话框,而不打开文件。正如您所建议的,从命令行打印将是一个不错的选择。不幸的是,我找不到 .xls 文件的打印命令。
  • 即使您在 Windows 中从资源管理器打印某些内容,它也会打开 Excel 应用程序,执行“打印”对话框,然后将其关闭。我认为你要么通过一些可以读取 Excel 的库打印自己,要么找到通过 CLI 调用它的方法,或者使用 JNI 调用一些本地 Windows API 来完成它。
  • 我想没有办法在不打开它的情况下打印文档。感谢您的建议!
  • 归结为“打印对话框”实际上并不打印任何内容,它是一个用于配置打印位置和方式的对话框。应用程序仍然负责进行实际“打印”所需的任何调用。无论您使用哪种语言,它都以这种方式工作。Java 增加了一些额外的复杂性,因为它们必须以非常平台中立的方式做事。最好的办法是查看库以允许您打开 Excel 文件并打印它。 @Nik 下面发布了一些关于如何读取文件的代码,您只需将其发送到打印机。

标签: java printing


【解决方案1】:

我认为 Apache POI 最适合您。代码语法类似于

      POIFSFileSystem filesystem = new POIFSFileSystem(new FileInputStream(file));
        HSSFWorkbook wrkbook = new HSSFWorkbook(filesystem );
        HSSFSheet sheet = wrkbook.getSheetAt(0);
        HSSFRow row;
        HSSFCell cell;
//Keep on doing your manipulation.

更多关于Apache POI

【讨论】:

  • 我使用这个库来创建需要打印的文档。但据我所知,它不允许打印文档。
  • 好的,需要用CL打印吗?
猜你喜欢
  • 2011-01-26
  • 1970-01-01
  • 1970-01-01
  • 2015-06-11
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
  • 1970-01-01
  • 2016-08-24
相关资源
最近更新 更多