2011-09-15 3 views
0

私はOpenOffice odtテンプレートを読み、必要なデータを挿入した後にxlsファイルを作成するPythonスクリプトを持っています。私はPythonでOpenOffice unoモジュールを使用しています。openoffice unoモジュールを使ってPythonで書かれているexcelシートのフリーズペイン

生成されるxlsでフリーズペインを実行する必要があります。 odtテンプレートで必要に応じてフリーズペインを適用しましたが、フリーズペインは生成されるxlsに適用されていません。私はプログラムで生成されているxlsのフリーズペインオプションを設定することができます何らかの方法はありますか?

任意の組み込み関数などです。

+0

最小限のコード例を示してください。 –

+0

あなたはどのOSを使用していますか?それがWindowsの場合は、それを実行するExcelを持っていますか? –

答えて

0

ウインドウをフリーズするには、オプションを「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)) 
関連する問題