Как я могу раскрасить буквы или фон (условно) в ячейке - openpyxl или R? - PullRequest
0 голосов
/ 26 февраля 2019

Мне нужно условно изменить цвет частичного текста ячейки.Это возможно?

Мой ввод - это многие из этих выравниваний последовательности (в текстовом формате, но я переписываю его в xlsx).Все в одном столбце:

>>f_1;KTD382xx1 hypothetical protein Labs_1969 [unknown] {gene:Labs_1969}_start=1;end=86;length=86;source_length=86
MFGFFSNVARTVTVDTVRTVAGTAVGLAAYQAAGYVQKTVLLDQRSQELKLAKQNEEAKSEEDPNWNPNPFAVDLDVLPRPSSFRA
&~~~~~~~~~~~~~~~~~~~~~~~~~~
1 | -0.499E+01 >>XXXXXXXX domain WP_01737xxxx hypothetical protein [Rickettsia] :_: Length: 161
#1 RTVAGTAVGLAAYQAAGYVQKTVLLDQRSQELKLAKQNEEA-KSEEDPNWNPNPFAVDLDVLPRPSS
#2 RPIGSASVGLQGFIETQRILDTLTDGNKKLELVFADSDDSSSKFKSDLNEFFNKYQSLIKALQNPSS
#c +------+++-----------+--------++--+-------+---+-+---+--------+--+++

>>f_1;KTD36892.1 hypothetical protein Labs_2028 [unknown] {gene:Labs_2028}_start=1;end=98;length=98;source_length=98
MPKPETEFTHLSDDALSRIGFFLSDTDRGRLASVNRQSFAVLGFSGYVKRVFGIDLSTFPLQALFFDASMVSERPEQLQLLRVLSLQEDYWQYAIVSE
&~~~~~~~~~~~~~~~~~~~~~~~~~~
5 | -0.404E+01 >>_vfdb.0001233_ VFG041279 (af) Dot/Icm type IV secretion system effector [Dot/Icm] [Legionella 1] :_: Length: 529
#1 KPETEFTHLSDDALSRIGFFLSDTDRGRLASVNRQSFAVLGFSGYVKRVFGIDLSTFPLQALFFDASMVSERPEQLQLLRVLSLQEDYWQYAIV
#2 KPGNIIIDFSKSPPI-----AKVIDFGFVLRASEQDYRRCGTRAYRA-------------------------PESFNTQALYTAKADVWSTGRI
#c ++-------+--------------+-+-------+-----+---+---------------------------++------------+-+-----

Я хочу раскрасить строки с # 1 # 2 условно, например.если буква A или C -> красный фон, желтый текст, если буква D или N -> синий фон, белый текст

input_file = 'input.txt'
output_file = 'output.xlsx'
    wb = openpyxl.Workbook()
    ws = wb.active  

with open(input_file, 'r') as data:
    reader = csv.reader(data, delimiter='\t')
    for row in reader:
        ws.append(row)

wb.save(output_file)

from openpyxl import load_workbook
wb = load_workbook('output.xlsx')
ws = wb.get_sheet_by_name('Sheet')

for cell in ws['A']:
    if type(cell.value) is str:

       cell.font = Font(name='Courier New')
#here I am


wb.save( 'test.xlsx' )

Возможно ли это в openpyxl?Пожалуйста, предложите мне, что поможет.В качестве альтернативы я думаю о языке R (я довольно новичок в R, кстати, и в openpyxl).

...