merge unmerge cell cells Josef Frysak How to merge and unmerge cells?

First get the current selection of the selected spreadsheet. Then get the

"XMergeable" interface of the selection. With this interface one can find

out wheter the selected are merged or not and is able to merge or umerge

them.

For further details see http://wi.wu-wien.ac.at/rgf/diplomarbeiten/BakkStuff/2008/200809_Frysak/200809_Frysak_Automating_OOo_ooRexx_Nutshells.pdf.

-- try to get a script context, will be .nil, if script was not invoked by OOo x_ScriptContext = uno.getScriptContext() if (x_ScriptContext <> .nil) then do -- invoked by OOo as a macro -- get context x_ComponentContext = x_ScriptContext~getComponentContext -- get desktop (an XDesktop) x_Desktop = x_ScriptContext~getDesktop -- get current document x_Document = x_ScriptContext~getDocument end else do -- called from outside of OOo, create a connection -- connect to Open Office and get component context x_ComponentContext = UNO.connect() -- create a desktop service and its interface service = "{%see com.sun.star.frame.Desktop}" s_Desktop = x_ComponentContext~getServiceManager~{%see com.sun.star.lang.XMultiServiceFactory%XMultiServiceFactory}~createInstance(service) x_Desktop = s_Desktop~{%see com.sun.star.frame.XDesktop%XDesktop} -- get the last active document x_Document = x_Desktop~getCurrentComponent() end -- query current selection x_Model = x_Document~{%see com.sun.star.frame.XModel%XModel} selection = x_Model~getCurrentSelection() x_Mergable = selection~{%see com.sun.star.util.XMergeable%XMergeable} -- if slecetion contains a merged cell unmerge it, else merge -- whole selection to one cell if x_Mergable~getIsMerged() then do x_Mergable~merge(.false) end else do x_Mergable~merge(.true) end ::requires UNO.CLS
Initial version