Создать гиперссылку для доступа к нескольким листам Excel с помощью Python

1

У меня есть несколько файлов 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 = "Домашняя страница"), который будет содержать разные имена листов в виде гиперссылок. Я должен был бы нажать на эту гиперссылку, которая приведет меня к соответствующим листам. Есть ли способ сделать это? Любые примеры кода были бы полезны, аналогичные коды, доступные в SO, мне не помогают.

Теги:
pandas
python-3.x

1 ответ

1

Это не вопрос pandas, так как функция pandas.to_excel имеет очень мало общего с форматированием и разметкой, используемой на листе excel.

Вы можете посмотреть xlsxwriter который специально форматирует файлы xlsx.

Это пример кода для форматирования hyperlinks, он адаптирован из документации, где вы можете прочитать больше.

###############################################################################
#
# Example of how to use the XlsxWriter module to write hyperlinks
#
# Copyright 2013-2018, John McNamara, [email protected]
#
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:[email protected]', string='Mail me')

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

workbook.close()
  • 0
    Большое спасибо. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню