Exemplo n.º 1
0
    def _search(self, sheet: Sheet, column: str, target: str, only_one=False):
        """
        Generic search method
        :param sheet: A Sheet XLRD Object where perform the search
        :param column: Name of the column where perform the search
        :param target: Value to find
        :param only_one: (boolean) search one (true) or multiple values (false)
        :return dict: a dictionary with a complete row of data
        """
        target_rows = []
        column_names = pyrvtools.pyrvtools.PyRvtools.get_columns_names(sheet)
        for row_number in range(sheet.nrows):
            if sheet.cell_value(row_number, column_names[column]) == target:
                target_rows.append(row_number)

                if target_rows and only_one:
                    break

        all_answer = []
        for target_row in target_rows:
            one_answer = {}
            for col_name, col_number in column_names.items():
                one_answer[col_name] = sheet.cell_value(target_row, col_number)
            all_answer.append(one_answer)
        return all_answer
Exemplo n.º 2
0
Arquivo: excel.py Projeto: equinor/lcm
def _find_column_index(sheet: Sheet, column_name: str) -> int:
    distribution_index = -1

    for i in range(sheet.ncols):
        if sheet.cell_value(0, i) == column_name:
            distribution_index = i
            break

    return distribution_index
Exemplo n.º 3
0
    def get_columns_names(sheet: Sheet):
        """
        Return a dictionary with COLUMN_NAME:ID_COLUMN
        :param sheet: a Sheet object
        """

        mapping = {}
        for col_index in range(sheet.ncols):
            mapping[sheet.cell_value(0, col_index)] = col_index
        return mapping
Exemplo n.º 4
0
Arquivo: excel.py Projeto: equinor/lcm
def get_column_values(sheet: Sheet, column_name: str) -> List:
    column_index = _find_column_index(sheet, column_name)

    if column_index == -1:
        raise Exception(f"Sheet does not contain column {column_name}")

    values = []
    for i in range(1, sheet.nrows):
        values.append(sheet.cell_value(i, column_index))
    return values
Exemplo n.º 5
0
 def __parse_sheet(self, sheet_id: int, sheet: Sheet) -> Table:
     n_rows = sheet.nrows
     n_cols = sheet.ncols
     res = []
     for row_id in range(n_rows):
         row = []
         for col_id in range(n_cols):
             value = sheet.cell_value(rowx=row_id, colx=col_id)
             row.append(value)
         res.append(row)
     metadata = TableMetadata(page_id=sheet_id)
     return Table(cells=res, metadata=metadata)
Exemplo n.º 6
0
def Get_Excel_Row_Values(filepath,sheetName,uniqueValue):
    
    Book = xlrd.open_workbook(filepath)
    Sheet = Book.sheet_by_name(sheetName)
    row_count = Sheet.nrows
    col_count = Sheet.ncols
    for i in range(0,row_count):
        for j in range(0,col_count):
            value = Sheet.cell_value(i, j)
            if value == uniqueValue:
                row_values = Sheet.row_values(i, 0)           
    return row_values
Exemplo n.º 7
0
def get_merged_cells_value(sheet: Sheet, row_index, col_index):
    """
    先判断给定的单元格,是否属于合并单元格;
    如果是合并单元格,就返回合并单元格的内容
    :return:
    """
    merged = get_merged_cells(sheet)
    for (rlow, rhigh, clow, chigh) in merged:
        if rlow <= row_index < rhigh:
            if clow <= col_index < chigh:
                cell_value = sheet.cell_value(rlow, clow)

                # print('该单元格[%d,%d]属于合并单元格,值为[%s]' % (row_index, col_index, cell_value))
                return cell_value
                break
    return None
Exemplo n.º 8
0
def extract_header(ws: Sheet):
    return (ws.cell_value(1, 1)), (ws.cell_value(1, 6))