Beispiel #1
0
 def __init__(self,file,sheet):
     """
     Takes the input file and the sheet name
     """
     self.book = xlrd.open_workbook(file)
     self.sheet = self.book.sheet_by_name(sheet)
     self.dec = XLConverter(None,None,"./empty_config")
Beispiel #2
0
class Scores2012(BatchFileProcessor):
    def __init__(self,pattern,audit_file):
        super(Scores2012,self).__init__(pattern,SCORES_SUFFIX)
        self.dec = XLConverter(None,None,NO_CONFIG)
        self.audit_mapper = AuditScoreMapper2012(audit_file,AUDIT_SHEET)
        self.audit_mapper.process()

    def transform(self,inbook,outbook):
        (r,c) = self.dec.decode_single_cell('B1')
        facility_id = inbook.sheet_by_name(FACILITY_PROFILE).cell_value(rowx=r,colx=c)
        (r,c) = self.dec.decode_single_cell('B5')
        audit_date = inbook.sheet_by_name(AUDIT_GENERAL_INFO).cell_value(rowx=r,colx=c)

        out_sheet = outbook.add_sheet(SCORES)
        preferred_list = self.audit_mapper.get_preferred_cols(facility_id,audit_date)

        if( preferred_list):
            for r,row in enumerate(preferred_list):
                for c,col in enumerate(row):
                    out_sheet.write(r,c,label=col)

        return True
Beispiel #3
0
class XLSheetProcessor(object):
    """
    This class abstracts implements the base functionality needed for processing an excel sheet, row by row
    """

    def __init__(self,file,sheet):
        """
        Takes the input file and the sheet name
        """
        self.book = xlrd.open_workbook(file)
        self.sheet = self.book.sheet_by_name(sheet)
        self.dec = XLConverter(None,None,"./empty_config")

    def process(self):
        for r in range(self.sheet.nrows):
            self.process_row(self.sheet.row_values(r))
        
    def process_row(self,row_values):
        pass
    
    def read_col(self,row_values,col):
        c = self.dec.decode_col(col)
        return row_values[c]
Beispiel #4
0
 def __init__(self,pattern,audit_file):
     super(Scores2012,self).__init__(pattern,SCORES_SUFFIX)
     self.dec = XLConverter(None,None,NO_CONFIG)
     self.audit_mapper = AuditScoreMapper2012(audit_file,AUDIT_SHEET)
     self.audit_mapper.process()
Beispiel #5
0
            numbered_findings[0] = fhdr + "\n" + numbered_findings[0]
            for find in numbered_findings:
                ar.write_row(rx+1,id,cat,FINDING_TYPE,fhdr + find,u"".join(exd_observations),cause,"Cond2.1")
        elif not numbered_findings:
            ar.write_row(rx+1,id,cat,FINDING_TYPE,fhdr,u"".join(exd_observations),cause,"Cond1")
        else:
            #Cond4 - no such match. Dump findings and finding details and notify
            ar.write_row(rx+1,id,cat,FINDING_TYPE,finding,(d1 + "\n" + d2),cause,"Cond4: Neelansha Please look at it!")

        if fob and not fdob:
            ar.write_row(rx+1,id,cat,OBSERV_TYPE,fob,d1 + "\n" + d2,cause,"Cond5.1 observ")
        elif fob and fdob:
            ar.write_row(rx+1,id,cat,OBSERV_TYPE,fob,fdob,cause,"Cond5 observ")

    try:
        converter = XLConverter(book,ar.get_workbook(),config_file)
        converter.process()
        
        #get facility profile name from file
        (frow,fcol) = converter.decode_single_cell('B5')
        facility_name = facility_profile.cell_value(rowx=frow,colx=fcol).strip()
        facility_id = facility_mapper.get_facility_id(facility_name,2013)
        converter.write_value("Facility Profile","A1","Facility ID From MSS:")
        converter.write_value("Facility Profile","B1",facility_id)

        ar.save()
        logging.info('Written file: ' + ifile + ".xls")
    except:
        logging.error("Error processing file: " + ifile + ".No output written")