панель замораживания в листе Excel, написанная на python с использованием модуля openoffice uno - PullRequest
0 голосов
/ 15 сентября 2011

У меня есть скрипт Python, который читает шаблон odt OpenOffice и создает файл xls после вставки необходимых данных.Я использую OpenOffice Uno модуль с Python.

Мне нужно выполнить остановку в генерируемой xls.Я применил панель замораживания как требуется в используемом шаблоне odt, но панель замораживания не применяется к генерируемому xls.Есть ли способ, которым я могу программно установить опцию стоп-кадра в генерируемой xls?

Любая встроенная функция или что-нибудь.

1 Ответ

0 голосов
/ 11 марта 2015

Чтобы заморозить окно с помощью uno, я обнаружил, что оно работает, только если вы открываете документ с опцией Hidden = False. Если для параметра Hidden установлено значение True, команда замораживания не применяется.

    import uno

    #function for setting parameters
    def make_property_array(**kwargs):
    """convert the keyword arguments to a tuple of PropertyValue unostructures"""
    array = []
    for name, value in kwargs.iteritems():
        prop = uno.createUnoStruct("com.sun.star.beans.PropertyValue")
        prop.Name = name
        prop.Value = value
        array.append(prop)
    return tuple(array)

    #load the document
    url = "file:///" + pathtoyourfile.replace("\\","/")
    document = desktop.loadComponentFromURL(url, "_blank", 0, make_property_array(Hidden=False))

    #set cell A1 as active
    table.getCellByPosition(0,0)
    #freeze the sheet at row 1
    document.CurrentController.freezeAtPosition(0,1)
    #save document in Excelformat
    document.storeAsURL(url.replace("ods","xls"), make_property_array(FilterName="MS Excel 97", Overwrite=True))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...