#python #xlsxwriter
#python #xlsxwriter
Вопрос:
У меня есть файл с разделителями табуляции, в который я добавляю некоторое форматирование и записываю в файл Excel. Один запрос заключается в том, чтобы раскрасить альтернативные строки кода, но в файле есть столбец doc_no, и для строк с тем же doc_no строки должны иметь одинаковый цвет. Как в примере ниже:
У меня есть это, где альтернативные строки имеют цветовую маркировку, а повторяющиеся doc_nos выделены (цвета, которые я использовал в примере для иллюстрации, могут не совпадать с цветами в коде). Я не уверен, как получить запрошенный результат, и был бы признателен за любую помощь.
Мой код:
import pandas as pd
import numpy as np
import time
infile = (r'C:..test.txt')
#read in tab delimited text file into dataframe
df = pd.read_csv(infile, sep='t', dtype = str, encoding='cp1252')
#delete columns with all null values
df.dropna(how='all', axis='columns', inplace=True)
#Get Date Range into variable date_range to print as HEADER and remove column from dataframe
date_range = df.iloc[0,0]
df.drop('Date Range', axis=1, inplace=True)
#replace NAN with empty string
df = df.replace(np.nan, '', regex=True)
dtstamp = time.strftime('%m-%d-%Y')
#Writing dataframe to Excel
writer = pd.ExcelWriter(r'C:..TEST-' dtstamp '.xlsx', engine = 'xlsxwriter')
df.to_excel(writer, sheet_name = 'Sheet1', startrow=2, index=False)
workbook = writer.book
ws = writer.sheets['Sheet1']
#--------------------------color code rows-------------------------------------
rcolor1 = workbook.add_format({'bg_color': '#D3D3D3'})
rcolor2 = workbook.add_format({'bg_color': '#FFE4E1'})
for row in range(3,(len(df.index) 3), 2):
ws.set_row(row,cell_format=rcolor2)
ws.conditional_format('B3:B' str(len(df.index) 3),{'type': 'duplicate', 'format': rcolor1})
...
writer.save()
workbook.close()