我使用 openpyxl 生成了多个 Excel 工作簿。 现在我需要创建一个合并的 Excel 工作簿,其中包含所有上述创建的 Excel 工作簿,并且可单击。
例如: 合并的 Excel 工作簿将如下所示:
如果我单击 abc.xlsx,则 abc.xlsx excel 工作簿应作为单独的 excel 打开。 就像我们使用超链接手动附加 xlsx 文件一样。可能通过相同或不同的方法,我需要使用 python 以编程方式将一个 Excel 工作簿附加到另一个 Excel 工作簿中。
扭转: 我还需要为 abc.xlsx、sdf.xlsx 提供相对路径。因为可以通过压缩将所有这些 excel 交给某人,那么 abc.xlsx、sdf.xlsx 的路径将会改变。
看来您想要的只是超链接;
添加到单元格并确保目标是 Excel 工作表所在位置的相对路径。
from openpyxl import load_workbook
from openpyxl.worksheet.hyperlink import Hyperlink
xlfile = "foo.xlsx"
sheet_name = 'Sheet1'
wb = load_workbook(xlfile)
ws = wb[sheet_name]
### Column A text
ws['A1'].value = 'abc'
### Hyperlink
cell_coord = 'B1'
hyperlink = Hyperlink(
target='..\<path>\abc.xlsx', # Relative path to Excel file
ref=cell_coord,
)
ws[cell_coord].value = "abc.xlsx" # Text to appear in cell
### Add hyperlink to cell
ws[cell_coord].hyperlink = hyperlink
### Save file
wb.save(xlfile)