나는 이것에 익숙하지 않으며 OpenOffice Developer 's Guide는 너무 이해하기 어렵거나 스스로 도울 것입니다.
데이터가 많은 행이 있고 각 행에 특정 매크로를 트리거하는 버튼을 원합니다 rowMacro
. 해당 매크로는 해당 특정 행의 데이터를 분석 / 수정합니다. 간단히하기 위해 행의 임의의 위치에 임의의 문자열을 작성한다고 가정 해 봅시다.
import uno
oDoc = XSCRIPTCONTEXT.getDocument()
def rowMacro(*args):
oSheet = oDoc.CurrentController.ActiveSheet
oCell1 = oSheet.getCellRangeByName("A4")
CurContr=oDoc.getCurrentController().getSelection()
oCell1.String = "Tada!"
각 행에 대해 12 개의 별도의 거의 동일한 스크립트를 만들고 싶지 않으므로 rowMacroRowA
행 A의 특정 버튼으로 트리거 되지 않습니다 . 모두 동일한 파이썬 매크로를 트리거하는 많은 버튼이 있습니다. 이 매크로는 어떤 버튼이 사용되었는지 (각 버튼마다 고유 한 이름이 있음)를 결정하고 적절한 행만 수정해야합니다. 그래서 파이썬에서 버튼 이름을 얻는 방법을 알아야합니다 (나는 거기에서 그것을 다루는 방법을 알게 될 것입니다).
다음 과 같이 발췌 한 웹 페이지 를 발견 했습니다.
# get the sheet
accueil_sheet = model.Sheets.getByName("Accueil")
# access the draw page
oDrawPage = accueil_sheet.DrawPage
# count the number of form
oDrawPage.getForms().getCount()
# get the list box of the control element
ListBox = oDrawPage.getForms().getByIndex(0).getByName("Listbox")
# get the list box item list
ListBox.StringItemList
# get the list box controller
ListBoxCtrl = model.getCurrentController().getControl(ListBox)
# get the selected items:
ListBoxCtrl.SelectedItems
그러나 내 문제의 해결책을 그로부터 빼내는 방법을 모르겠습니다.
요약:
- 매크로를 트리거하는 데 사용 된 버튼의 이름을 얻는 방법은 무엇입니까?
- 더 나은 아직 위치, 특히 행을 얻는 방법? (이것은 올바른 방향으로 나를 밀면 오히려 스스로 알아 내고 싶습니다).