Esempio n. 1
0
def _get_spreadsheet_headers(client, spreadsheet_key, worksheet_id):
    """Returns a list of headers (the first line of the spreadsheet).

    Will be in the order they appear in the spreadsheet.
    """
    headers = []

    query = CellQuery()
    query.max_row = '1'
    query.min_row = '1'
    feed = client.GetCellsFeed(spreadsheet_key,
                               worksheet_id,
                               query=query,
                               visibility='public',
                               projection='values')

    # Wish python had a do-while...
    while True:
        for entry in feed.entry:
            headers.append(entry.content.text)

        # Get the next set of cells if needed.
        next_link = feed.GetNextLink()

        if next_link:
            feed = client.Get(next_link.href,
                              converter=SpreadsheetsCellsFeedFromString)
        else:
            break

    return headers
Esempio n. 2
0
def _get_spreadsheet_headers(client, spreadsheet_key, worksheet_id):
    """Returns a list of headers (the first line of the spreadsheet).

    Will be in the order they appear in the spreadsheet.
    """
    headers = []

    query = CellQuery()
    query.max_row = '1'
    query.min_row = '1'
    feed = client.GetCellsFeed(spreadsheet_key, worksheet_id, query=query,
                               visibility='public', projection='values')

    # Wish python had a do-while...
    while True:
        for entry in feed.entry:
            headers.append(entry.content.text)

        # Get the next set of cells if needed.
        next_link = feed.GetNextLink()

        if next_link:
            feed = client.Get(next_link.href,
                              converter=SpreadsheetsCellsFeedFromString)
        else:
            break

    return headers
Esempio n. 3
0
    def get_sheet_headers(self, key, sheet_id, client=None):
        query = CellQuery()
        query.max_row = "1"
        query.return_empty = "true"

        if not client:
            client = self._get_client()
        header_xml = client.GetCellsFeed(key, sheet_id, query=query)

        # setups our cleaning regex
        REGEX_CLEAN = "([^\s\?]*)"
        clean = re.compile(REGEX_CLEAN, re.DOTALL)

        # squirrels away our header data
        ret = []
        for i, v in enumerate(header_xml.entry):
            if v.cell.inputValue:
                ret.append(
                    {
                        "index": i,
                        "friendly": v.cell.inputValue,
                        "programmatic": "".join(clean.findall(v.cell.inputValue.lower().replace("_", ""))),
                    }
                )

        return ret
Esempio n. 4
0
 def headers(self):
     """ Return the name of all headers currently defined for the
     table. """
     if self._headers is None:
         query = CellQuery()
         query.max_row = '1'
         feed = self._service.GetCellsFeed(self._ss.id, self.id,
                                           query=query)
         self._headers = feed.entry
     return [normalize_header(h.cell.text) for h in self._headers]
Esempio n. 5
0
 def headers(self):
     """ Return the name of all headers currently defined for the
     table. """
     if self._headers is None:
         query = CellQuery()
         query.max_row = '1'
         feed = self._service.GetCellsFeed(self._ss.id,
                                           self.id,
                                           query=query)
         self._headers = feed.entry
     return [normalize_header(h.cell.text) for h in self._headers]
Esempio n. 6
0
 def __init__(self, client, key, worksheet_id, start_row, end_row):
     self.entries = {}
     self.batch = SpreadsheetsCellsFeed()
     self.max_col = 0
     self.max_row = 0
     self.client = client
     
     query = CellQuery()
     query.return_empty = 'true'
     query.min_row = str(start_row)
     query.max_row = str(end_row)
     self.cells = client.GetCellsFeed(key, worksheet_id, query=query)
     self.register_all(self.cells.entry)