Macros/Calc/py018

From The Document Foundation Wiki
< Macros‎ | Calc
Jump to navigation Jump to search
This page is a translated version of the page Macros/Calc/py018 and the translation is 100% complete.
Other languages:
English • ‎italiano

Descrizione

Eseguite il dispatcher per inserire una formula (in realtà qualsiasi stringa) in una determinata cella

Codice Python

 1# codifica: utf-8
 2from __future__ import unicode_literals
 3import uno
 4from com.sun.star.beans import PropertyValue
 5
 6def calcInsertStringToCell(*args ):    # *args qui viene utilizzato solo quando questo modulo viene avviato da un pulsante del modulo
 7    document = XSCRIPTCONTEXT.getDocument()
 8    frame = document.getCurrentController().getFrame()
 9    ctx = XSCRIPTCONTEXT.getComponentContext()
10    dispatcher = ctx.ServiceManager.createInstanceWithContext('com.sun.star.frame.DispatchHelper', ctx)
11    
12    propVal = PropertyValue()                 # Costruttore predefinito
13   
14    propVal.Name="ToPoint"
15    propVal.Value="$B$11"   # La cella in cui inserire
16    properties=(propVal,)    # Il parametro che passa in executeDispatch **deve** essere una tupla
17
18    dispatcher.executeDispatch(frame, ".uno:GoToCell", "", 0, properties)  # Esegue il Dispatch
19    
20    propVal.Name="StringName"
21    propVal.Value="=sum(B3:B10)"    # Può essere qualsiasi stringa, qui vogliamo mettere la somma di B3:B10 in B11
22    properties=(propVal,)
23
24    dispatcher.executeDispatch(frame, ".uno:EnterString", "", 0, properties)  # Esegue il Dispatch
25    
26    # Extra: riempe automaticamente con lo stesso contenuto dalla cella corrente (B11) a D11
27
28    propVal.Name="EndCell"
29    propVal.Value="$D$11"    # imposta EndCell del comando AutoFill su D11
30    properties=(propVal,)
31
32    dispatcher.executeDispatch(frame, ".uno:AutoFill", "", 0, properties)