将Excel文件导出为PDF格式,而不会失去超链接功能

时间:2019-10-15 21:58:07

标签: python excel vba pdf-generation win32com

我使用以下代码读取Excel文件并将选定的图纸导出为PDF:

import win32com.client

xlsx_path = "" #insert path to excel file
pdf_path = "" #insert path to pdf output

excel = win32com.client.gencache.EnsureDispatch("Excel.Application")
wb = excel.Workbooks.Open(xlsx_path)
sheet_list = ["Sheet1", "Sheet2"]
wb.Worksheets(sheet_list).Select()
wb.ActiveSheet.ExportAsFixedFormat(0, pdf_path)
wb.Close()

在Excel文件中,我具有在工作表之间切换的超链接,但是这些链接失去了PDF格式的功能。我使用的宏的一个示例是:

=HYPERLINK("[file.xlsx]Sheet1!A1","back")

我的问题是,是否有办法以PDF形式保留链接功能?

1 个答案:

答案 0 :(得分:1)

这不完全是简单的事情,格式可能是个问题,但是如果您Excel文件中的内容是带有文本和数字的简单表(没有图像或精美的格式),则可以使用LaTeX: / p>

  1. 以LaTeX格式导出Excel内容。您可以找到已经存在的VBA(like this one)或Python(like this one)软件包,它们可以做到这一点,或者至少是一个不错的起点。
  2. 在LaTeX文件中,查找并替换以将您的链接更改为适用于LaTeX的正确格式,并添加部分信息。 (有关更多详细信息,请参见this question
  3. 通过VBA(使用shell命令)或Python将LaTeX文件编译为PDF。