创建用于通过python访问多个excel表的超链接

Posted

技术标签:

【中文标题】创建用于通过python访问多个excel表的超链接【英文标题】:Create hyperlink for accessing Multiple excel sheets by python 【发布时间】:2018-06-17 09:47:43 【问题描述】:

我有多个 txt 文件,我可以通过以下代码将它们合并并写入不同的 Excel 表格:

for file in list(file_lists):
    filename = os.path.join(path, file)
    df = pd.read_table(filename,sep="|",encoding = "ISO-8859-1")
    df.to_excel(writer, sheet_name=file[:-4], index=False,header=True)
writer.save()

我现在想创建另一个工作表 (Name = "Homepage"),其中包含不同的工作表名称作为超链接。我应该能够单击该超链接,该超链接会将我带到相应的工作表。有什么办法可以做到吗?任何示例代码都会有所帮助,SO 中可用的类似代码对我没有帮助。

【问题讨论】:

【参考方案1】:

这并不是一个真正的pandas 问题,因为pandas.to_excel 函数与Excel 表中使用的格式和标记几乎没有关系。

您可以查看xlsxwriter,它专门格式化xlsx 文件。

这是格式化hyperlinks的示例代码,改编自documentation,您可以阅读更多内容。

###############################################################################
#
# Example of how to use the XlsxWriter module to write hyperlinks
#
# Copyright 2013-2018, John McNamara, jmcnamara@cpan.org
#
import xlsxwriter

# Create a new workbook and add a worksheet
workbook = xlsxwriter.Workbook('hyperlink.xlsx')
worksheet = workbook.add_worksheet('Hyperlinks')

# Format the first column
worksheet.set_column('A:A', 30)

# Add a sample alternative link format.
red_format = workbook.add_format(
    'font_color': 'red',
    'bold':       1,
    'underline':  1,
    'font_size':  12,
)

# Write some hyperlinks
worksheet.write_url('A1', 'http://www.python.org/')  # Implicit format.
worksheet.write_url('A3', 'http://www.python.org/', string='Python Home')
worksheet.write_url('A5', 'http://www.python.org/', tip='Click here')
worksheet.write_url('A7', 'http://www.python.org/', red_format)
worksheet.write_url('A9', 'mailto:jmcnamara@cpan.org', string='Mail me')

# Write a URL that isn't a hyperlink
worksheet.write_string('A11', 'http://www.python.org/')

workbook.close()

【讨论】:

以上是关于创建用于通过python访问多个excel表的超链接的主要内容,如果未能解决你的问题,请参考以下文章

如何在浏览器中打开Excel中的超链接

iOS 如何生成EXCEL文档和读取EXCEL文档

从主文件创建多个Excel工作簿的最佳方法,文件必须使用带有多个工作表的现有模板

如何使用 C# 从 DataSet 创建包含多个工作表的 excel 文件

MS Access VBA:创建具有多个工作表的 Excel 工作簿

使用OPEN XML SDK 读取EXCEL中的超链接Hyperlink