#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = "Anton Vlasenko" # THIS PROGRAM NEED AN 'index.htm' FILE IN THE SAME DIRECTORY WITH NEXT CONTENT: # *anything here* # # *anything that will be lost here* # # *anything here* import xlrd import re class Parse(object): "Parse excel files with links rows and then insert them into index.htm file" def func(self): self.result.append('

%s

\n
    ' % self.data[0]) self.exec_ = self.func2 def func2(self): self.result.append('
') self.result.append('\n

%s

\n
    ' % (self.data[0], self.counter)) def main(self): self.exec_ = self.func for rownum in xrange(2,81): self.data = (self.sheet.cell(rownum, 2).value.encode('utf-8'), self.sheet.cell(rownum, 3).value.encode('utf-8'), self.sheet.cell(rownum, 4).value.encode('utf-8')) if self.data[0] and self.data[1]: self.result.append('
  1. %s

    %s
    %s

  2. ' % (self.data[1], self.data[0], self.data[1], self.data[2], )) self.counter += 1 elif self.data[0] and not self.data[1]: self.exec_() self.result.append('
') self.result = '\n' + "\n".join(self.result) + '\n\n' # MAKE BACKUPS! with open('index.htm', 'r') as f: file_content = f.read() with open('index.htm', 'w') as f: result = self.pattern.sub(self.result, file_content, re.M) #print result #print self.pattern.search(file_content) f.write(result) print ('Done!') def __init__(self): self.counter = 1 self.result = [] self.pattern = re.compile(r'.*?', re.MULTILINE|re.DOTALL) self.rb = xlrd.open_workbook('links.xls',formatting_info=True) self.sheet = self.rb.sheet_by_index(0) print ('Running script...') self.main() if __name__ == '__main__': Parse()