On 20/01/2016 00:01, jim-pc wrote:
How do I get data from libre office using python?


Hello,

The function below search and get text between 2 delimiters inside a libre office swriter document. It is given as an example. You still have to open a document object in Swriter server.(In the Libre office UNO website you will find simple code to do that step.)

def get_text_inside_delimiters(component=None, delimiter1=None, delimiter2=None):
    """ Get text between 2 string delimiters."""

    # Creation of 2 descriptors from a document w/ search capabilities.
    open_search  = component.createSearchDescriptor()
    close_search = component.createSearchDescriptor()

    # Specify the delimiter texts to find.
    open_search.SearchString  = delimiter1
    close_search.SearchString = delimiter2

    # Find and open the first delimiter object.
    open_found = component.findFirst(open_search)
    # Unselect the 1rst delimiter from the range selection
    # done by findFirst() to not have in the search result.
    open_found.goRight(0, False)

    # Search for the 2nd delimiter the closest from first delimiter.
    close_found = component.findNext(open_found.End, close_search)
    # Filter the 2nd delimiter from the range selection
    # done by findNext() to not have in the search result.
    close_found.goLeft(len(close_found.getString()), False)

    # Cursor selection of the target string.
    open_found.gotoRange(close_found, True)

    # Return target string whithin the cursor selection.
    return open_found.getString().strip()

Hope this help.
Karim

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to