def __iter__(self):
     if self.select_headers:
         column_selection = [
             self.columns.index(x) for x in self.select_headers
         ]
         leftcol = min(column_selection)
         rightcol = max(column_selection)
         column_indexes = [x - leftcol for x in column_selection]
         iterator = self.sheet.iter_rows(
             min_col=leftcol + 1,  # 1-indexed arguements. 
             max_col=rightcol + 1)
         next(iterator)  # Skip header.
         for row in iterator:
             values = [
                 row[i].value if row[i].value != None else ''
                 for i in column_indexes
             ]
             if all(x == None or x == '' for x in values): continue
             yield ReportEntry(self.select_headers, values,
                               self.autotypecast)
     else:
         iterator = self.sheet.iter_rows()
         next(iterator)  # Skip header.
         for row in iterator:
             values = [x.value if x.value != None else '' for x in row]
             if all(x == None or x == '' for x in values): continue
             yield ReportEntry(self.columns, values, self.autotypecast)
示例#2
0
 def __iter__(self):
     iterator = self.sheet.iter_rows()
     iterator.next() # Skip header.
     for row in iterator:
         values = [x.value if x.value != None else '' for x in row]
         if not any(values): continue
         yield ReportEntry(self.columns, values, self.autotypecast)
示例#3
0
    def __call__(self, query):
        cursor = self.conn.execute(query)

        columns = tuple(d[0] for d in cursor.description)
        columns = tuple(
            (c[1:-1] if c[0] == c[-1] == '"' else c) for c in columns)

        for row in cursor:
            yield ReportEntry(columns, row)
示例#4
0
 def __iter__(self):
     self.fh.seek(0)  # start at beginning of the file
     next(self.csv)  # ignore headers
     for row in self.csv:
         if self.infer_types:
             row = list(map(infer_and_convert_type, row))
         if not len(row):
             continue
         elif len(row) != len(self.columns):
             import warnings
             warnings.warn('Incomplete row encountered in CSV: %s' %
                           ','.join(map(str, row)))
             row += [''] * (len(self.columns) - len(row))
         yield ReportEntry(columns=self.columns, values=row)
示例#5
0
 def __iter__(self):
     self.fh.seek(0)  # start at beginning of the file
     self.csv.next()  # ignore headers
     for row in self.csv:
         # will convert default column values to correct type
         yield ReportEntry(columns=self.columns, values=row)
 def __iter__(self):
     for index in range(1, self.sheet.nrows):
         row = self.sheet.row(index)
         yield ReportEntry(self.columns, [x.value for x in row],
                           self.autotypecast)
示例#7
0
 def __iter__(self):
     '''Returns the rows of data (not the headers) for reading'''
     for i,row in enumerate(self._data):
         if i == 0:
             continue
         yield ReportEntry(columns=self.columns, values=row)
示例#8
0
 def __iter__(self):
     for row in self.conn.execute('select * from %s' % self.table_name):
         yield ReportEntry(self.columns, row)