вставьте частично цветной текст и гиперссылку за ним в ячейку Excel - PullRequest
0 голосов
/ 13 июля 2020

Как добавить следующую гиперссылку

<a href="http://www.bing.com">elon musk <em style="color : red;">starlink</em></a>

в ячейку Excel?

Я хочу: введите описание изображения здесь

Я поискал в Интернете и обнаружил, что добавить текст со ссылкой на Excel несложно, проблема в том, что текст частично окрашен, поэтому как частично раскрасить текст в ячейке Excel ?

Ответы [ 2 ]

1 голос
/ 13 июля 2020

openpyxl не смог этого сделать. (Частично окрашен) .По тесту оказалось, что openpyxl не получит цвет второй части.

Это example.xlsx:

enter image description here

If you read it by openpyxl,like:

import openpyxl
from openpyxl.styles import Font, Color

wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
print(sheet.cell(row=1, column=1).font.color)

Result:


Parameters:
rgb='FFFFFF00', indexed=None, auto=None, theme=None, tint=0.0, type='rgb'

There isn't the second color in the font.


Also, I tried to copy the style of this cell to a new file,like:

import openpyxl, copy
from openpyxl.styles import Font, Color


wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
sheet.cell(row=1, column=2, value="elon musk starlink").font = copy.copy(sheet.cell(row=1, column=1).font)

wb.save('output.xlsx')

still missed the color of the second part. введите описание изображения здесь

1 голос
/ 13 июля 2020

Вот пример использования XlsxWriter, где вы пишете URL-адрес, а затем перезаписываете текст ячейки богатой строкой, содержащей несколько форматов:

import xlsxwriter

workbook = xlsxwriter.Workbook('rich_string_url.xlsx')
worksheet = workbook.add_worksheet()

# Adjust the column width for clarity
worksheet.set_column('A:A', 20)

# Add the required url.
worksheet.write_url('A1', 'http://www.bing.com')

# Add for formats for the rich string.
red = workbook.add_format({'color': 'red', 'underline': 1})
url_format = workbook.get_default_url_format()

# Overwrite the text for the url with a rich string.
worksheet.write_rich_string('A1',
                            'elon musk ',
                            red, 'starlink',
                            url_format)

workbook.close()

Вывод :

enter image description here

See the XlsxWriter docs on write_url () и write_rich_string () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...