Оставлю готовый код, может кому-нибудь из таких же новичков когда-нибудь поможет.
import re, xlrd, xlwt
from xlutils.copy import copy
md = open('c:/Tmp/test/log.txt', 'r') # Путь к логам
# Функция, создающая фильтр и применяющая его для поиска файле лога
def Seach(md):
reline = re.compile(r'^201\d[0-1]\d[0-3]\d')
for line in md:
m = reline.match(line)
if m:
return line
genr = Seach(md)
# Открываем эксельник, в который будет производиться запись, делаем его копию для редактирования
readbook = xlrd.open_workbook(r"C:/Tmp/test/jour2.xls", on_demand=True, formatting_info=True)
readsheet = readbook.sheet_by_index(0) # Указание на индекс листа книги.
writebook = copy(readbook)
writesheet = writebook.get_sheet(0) # Указание на индекс листа книги.
# Устанавливаем перенос по словам, выравнивание
alignment = xlwt.Alignment()
alignment.wrap = 1
alignment.horz = xlwt.Alignment.HORZ_CENTER # May be: HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED
alignment.vert = xlwt.Alignment.VERT_CENTER # May be: VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED
# Устанавливаем шрифт
font = xlwt.Font()
font.name = 'Arial Cyr'
font.bold = True
# Устанавливаем границы
borders = xlwt.Borders()
borders.left = xlwt.Borders.THIN # May be: NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR, MEDIUM_DASHED, THIN_DASH_DOTTED, MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED, MEDIUM_DASH_DOT_DOTTED, SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.
borders.right = xlwt.Borders.THIN
borders.top = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THIN
# Создаём стиль с нашими установками
style = xlwt.XFStyle()
style.font = font
style.alignment = alignment
style.borders = borders
# Задаём цикл поиска первой пустой строки и записи в неё нужных нам данных
for ii in range(readsheet.nrows): # по всем ФОРМАТИРОВАННЫМ строкам. Я просто с самого начала выделил нужные мне столбцы и обрамил их. =)
if readsheet.cell_type(ii, 0) in (xlrd.XL_CELL_EMPTY, xlrd.XL_CELL_BLANK):
print writesheet.write(ii, 0, int(readsheet.cell_value(ii - 1, 0))+1, style)
writesheet.write(ii, 1, readsheet.cell_value(ii - 1, 1), style)
writesheet.write(ii, 2, str(genr[6:8])+"."+str(genr[4:6])+"."+str(genr[:4]), style)
writesheet.write(ii, 3, str(genr[8:10])+":"+str(genr[10:12])+":"+str(genr[12:14]), style)
writesheet.write(ii, 4, readsheet.cell_value(ii - 1, 4), style)
writesheet.write(ii, 5, readsheet.cell_value(ii - 1, 5), style)
writesheet.write(ii, 6, readsheet.cell_value(ii - 5, 6), style)
writesheet.write(ii, 7, readsheet.cell_value(ii - 1, 7), style)
writesheet.write(ii, 8, readsheet.cell_value(ii - 1, 8), style)
break
md.close() # Закрываем открытый файл лог
readbook.release_resources() # Освобождаем наш эксельник от чтения
writebook.save('c:/Tmp/test/jour2.xls') # Перезаписываем наш эксельник