使用python打印Excel工作簿

新手上路,请多包涵

假设我有一个 excel 文件 excel_file.xlsx 我想使用 Python 将它发送到我的打印机,所以我使用:

 import os
os.startfile('path/to/file','print')

我的问题是这只打印 excel 工作簿的第一张纸,但我想要打印所有的纸。有没有办法打印整个工作簿?

另外,我使用 Openpyxl 来创建文件,但它似乎没有任何选项来选择要打印的页数。

任何帮助将不胜感激。

原文由 RottenCandy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 936
2 个回答

事实证明,问题出在 Microsoft Excel os.startfile 只是将文件发送到用于打开这些文件类型的系统默认应用程序。我只需要将默认设置更改为另一个应用程序(在我的例子中是 WPS Office),问题就解决了。

原文由 RottenCandy 发布,翻译遵循 CC BY-SA 3.0 许可协议

我有这个问题(在 Windows 上),它是通过使用 pywin32 模块和这个代码块解决的(在第 5 行你可以指定你想要打印的工作表。)

     import win32com.client
    o = win32com.client.Dispatch('Excel.Application')
    o.visible = True
    wb = o.Workbooks.Open('/Users/1/Desktop/Sample.xlsx')
    ws = wb.Worksheets([1 ,2 ,3])
    ws.printout()

原文由 coder78 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题