2011-09-15 31 views
0

我有一個Python腳本,它讀取OpenOffice odt模板並在插入所需數據後創建一個xls文件。我正在使用Python的OpenOffice uno模塊。使用openoffice uno模塊使用python編寫的excel表格中的凍結窗格

我需要在正在生成的xls中執行凍結窗格。我根據需要在正在使用的odt模板中應用了凍結窗格,但凍結窗格未應用於正在生成的xls。有沒有什麼辦法可以編程設置凍結窗格選項在xls被生成?

任何內置功能或任何東西。

+0

請顯示最小代碼示例。 –

+0

你在使用什麼操作系統?如果它是Windows,你是否擅長運行它? –

回答

0

對於用uno凍結窗口,我發現它只有在您用選項Hidden = False打開文檔時纔有效。當「隱藏」設置爲「真」時,不會應用凍結命令。

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))