def getParameters(self):
     parameters = []
     table = self.fp.Parameters
     row = 2
     parameter = getTableValue(table, 'A', row)
     while (parameter):
         parameters.append(parameter)
         row += 1
         parameter = getTableValue(table, 'A', row)
     return parameters
    def _getHeadersByRow_(self, table):
        headers = {}
        row = 2  # Skip header row
        header = getTableValue(table, 'A', row)
        while (header):
            headers[header] = row
            row += 1
            header = getTableValue(table, 'A', row)

        return headers
def getParametersValues(doc):
    table = None
    for t in doc.getObjectsByLabel('Parameters'):
        if (t.TypeId == 'Spreadsheet::Sheet'):
            table = t
            break
    if (table is None):
        return None, None, True
    if ((table.get('A1') != 'Parameter') or (table.get('B1') != 'Value')):
        logWarning(
            "Spreadsheet 'Parameters' doesn't meet layout constraints to serve as parameters table!"
        )
        logWarning(
            "First row must be 'Parameter', 'Value', 'Unit', 'Source' - creating new one."
        )
        return None, None, True
    hasUnit = (table.get('C1') == 'Unit')
    hasSource = (table.get('D1') == 'Source')
    hasProperty = (table.get('E1') == 'Property')
    row = 2
    values = []
    while (True):
        name = getTableValue(table, 'A', row)
        if (name is None):
            break
        value = getTableValue(table, 'B', row)
        unit = None
        if (hasUnit):
            unit = getTableValue(table, 'C', row)
        else:
            unit = table.get(getCellRef('B', row))
            if (hasattr(unit, 'getUserPreferred')):
                unit = unit.getUserPreferred()[2]
            else:
                unit = None
        source = None
        if (hasSource):
            source = getTableValue(table, 'D', row)
        property = None
        if (hasProperty):
            property = getTableValue(table, 'E', row)
        values.append([False, source, property, name, value, unit])
        row += 1
    return table, values, False