diff --git a/doc/build/.doctrees/environment.pickle b/doc/build/.doctrees/environment.pickle
index 066104c..4843369 100644
Binary files a/doc/build/.doctrees/environment.pickle and b/doc/build/.doctrees/environment.pickle differ
diff --git a/doc/build/.doctrees/main/calc.doctree b/doc/build/.doctrees/main/calc.doctree
index 3aa16a7..2baec61 100644
Binary files a/doc/build/.doctrees/main/calc.doctree and b/doc/build/.doctrees/main/calc.doctree differ
diff --git a/doc/build/_sources/main/calc.rst.txt b/doc/build/_sources/main/calc.rst.txt
index 16109a3..e1b599b 100644
--- a/doc/build/_sources/main/calc.rst.txt
+++ b/doc/build/_sources/main/calc.rst.txt
@@ -9,8 +9,11 @@ Remember, always import library.
import easymacro as app
+Document
+~~~~~~~~
+
Current doc
-~~~~~~~~~~~
+^^^^^^^^^^^
.. code-block:: python
@@ -19,7 +22,7 @@ Current doc
Selection
-~~~~~~~~~
+^^^^^^^^^
* If selection is range get LOCalcRange, if selection is shape get LOShape, other selection get original pyuno object.
@@ -31,7 +34,7 @@ Selection
Headers
-~~~~~~~
+^^^^^^^
* Hide or show columns and rows headers.
@@ -45,7 +48,7 @@ Headers
Tabs
-~~~~
+^^^^
* Hide or show tab sheets.
@@ -59,10 +62,10 @@ Tabs
Sheets
-^^^^^^
+~~~~~~
Active sheet
-~~~~~~~~~~~~
+^^^^^^^^^^^^
.. code-block:: python
@@ -75,7 +78,7 @@ Active sheet
Get by index
-~~~~~~~~~~~~
+^^^^^^^^^^^^
.. code-block:: python
@@ -85,7 +88,7 @@ Get by index
Get by name
-~~~~~~~~~~~
+^^^^^^^^^^^
.. code-block:: python
@@ -95,7 +98,7 @@ Get by name
Contains
-~~~~~~~~
+^^^^^^^^
.. code-block:: python
@@ -104,7 +107,7 @@ Contains
Get tuple with all names
-~~~~~~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: python
@@ -113,7 +116,7 @@ Get tuple with all names
Count
-~~~~~
+^^^^^
.. code-block:: python
@@ -121,7 +124,7 @@ Count
app.msgbox(len(doc))
New
-~~~
+^^^
* Always validate if new name not exists.
@@ -146,7 +149,7 @@ New
Move
-~~~~
+^^^^
* Move by object to last position.
@@ -184,7 +187,7 @@ Move
Remove
-~~~~~~
+^^^^^^
* Remove by object.
@@ -208,7 +211,7 @@ Remove
Copy
-~~~~
+^^^^
* Copy inside the same spreadsheet.
@@ -234,7 +237,7 @@ Copy
Copy from
-~~~~~~~~~
+^^^^^^^^^
* Copy sheet from one spreadsheet to other.
@@ -249,7 +252,7 @@ Copy from
Copy to
-~~~~~~~
+^^^^^^^
* Copy from sheet with the same name
@@ -269,7 +272,7 @@ Copy to
Sort
-~~~~
+^^^^
* Sort sheets by names.
@@ -279,7 +282,7 @@ Sort
doc.sort()
Name
-~~~~
+^^^^
* Name visible by the user.
@@ -292,7 +295,7 @@ Name
Code name
-~~~~~~~~~
+^^^^^^^^^
* Name only accessible by code.
@@ -305,7 +308,7 @@ Code name
Visible
-~~~~~~~
+^^^^^^^
* Apply only with spreadsheet with two or more sheets.
@@ -319,7 +322,7 @@ Visible
Is protected
-~~~~~~~~~~~~
+^^^^^^^^^^^^
* If sheet is protected with password.
@@ -330,7 +333,7 @@ Is protected
Set password
-~~~~~~~~~~~~
+^^^^^^^^^^^^
.. code-block:: python
@@ -340,7 +343,7 @@ Set password
Remove password
-~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^
.. code-block:: python
@@ -353,7 +356,7 @@ Remove password
Tab color
-~~~~~~~~~
+^^^^^^^^^
.. code-block:: python
@@ -369,7 +372,7 @@ Tab color
Document parent
-~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^
.. code-block:: python
@@ -377,7 +380,7 @@ Document parent
Activate
-~~~~~~~~
+^^^^^^^^
.. code-block:: python
@@ -392,7 +395,43 @@ Activate
sheet.activate()
+Ranges
+~~~~~~
+
+Cells
+^^^^^
+
+* By name
+
+.. code-block:: python
+
+ sheet = app.active_sheet
+ cell = sheet['A1']
+ app.msgbox(cell.name)
+* By position [row, column]
+
+.. code-block:: python
+
+ cell = sheet[1, 4]
+ app.msgbox(cell.name)
+Ranges
+^^^^^^
+
+* By name
+
+.. code-block:: python
+
+ sheet = app.active_sheet
+ rango = sheet['B2:D5']
+ app.msgbox(rango.name)
+
+* By position [start_row, end_row, start_column, end_column]
+
+.. code-block:: python
+
+ rango = sheet[1:5,1:4]
+ app.msgbox(rango.name)
diff --git a/doc/build/main/calc.html b/doc/build/main/calc.html
index 3ed6de3..50c7274 100644
--- a/doc/build/main/calc.html
+++ b/doc/build/main/calc.html
@@ -39,15 +39,17 @@
+
+Document
-Current doc
+Current doc
doc = app.active
app.msgbox(doc.type)
-Selection
+Selection
@@ -58,7 +60,7 @@
-Tabs
+Tabs
@@ -82,12 +84,12 @@
doc.tabs = not doc.tabs
+
+
-
+Sheets
-Active sheet
+Active sheet
sheet = app.active_sheet
app.msgbox(sheet.name)
@@ -98,7 +100,7 @@
-Get by index
+Get by index
doc = app.active
sheet = doc[0]
app.msgbox(sheet.name)
@@ -106,7 +108,7 @@
-Get by name
+Get by name
doc = app.active
sheet = doc['Sheet1']
app.msgbox(sheet.name)
@@ -114,28 +116,28 @@
-Contains
+Contains
doc = app.active
app.msgbox('Sheet1' in doc)
-Get tuple with all names
+Get tuple with all names
doc = app.active
app.msgbox(doc.names)
-Count
+Count
doc = app.active
app.msgbox(len(doc))
-New
+New
@@ -159,7 +161,7 @@
-Move
+Move
@@ -196,7 +198,7 @@
-Remove
+Remove
@@ -219,7 +221,7 @@
-Copy from
+Copy from
@@ -257,7 +259,7 @@
-Copy to
+Copy to
@@ -276,7 +278,7 @@
-Sort
+Sort
@@ -286,7 +288,7 @@
-Name
+Name
@@ -298,7 +300,7 @@
-Code name
+Code name
@@ -310,7 +312,7 @@
-Visible
+Visible
@@ -323,7 +325,7 @@
-Is protected
+Is protected
@@ -333,7 +335,7 @@
-Set password
+Set password
sheet = app.active_sheet
sheet.password = 'letmein'
app.msgbox(sheet.is_protected)
@@ -341,7 +343,7 @@
-Remove password
+Remove password
sheet = app.active_sheet
sheet.password = 'letmein'
app.msgbox(sheet.is_protected)
@@ -352,7 +354,7 @@
-Tab color
+Tab color
sheet = app.active_sheet
app.msgbox(sheet.color)
@@ -366,13 +368,13 @@
-Document parent
+Document parent
-Activate
+Activate
doc = app.active
# Get last sheet
sheet = doc[-1]
@@ -385,6 +387,46 @@
+
+
+Ranges
+
+Cells
+
+sheet = app.active_sheet
+cell = sheet['A1']
+app.msgbox(cell.name)
+
+
+
+cell = sheet[1, 4]
+app.msgbox(cell.name)
+
+
+
+
+Ranges
+
+sheet = app.active_sheet
+rango = sheet['B2:D5']
+app.msgbox(rango.name)
+
+
+
+rango = sheet[1:5,1:4]
+app.msgbox(rango.name)
+
+
+
+
diff --git a/doc/build/main/easymacro.html b/doc/build/main/easymacro.html
index 145b24e..a58b2ea 100644
--- a/doc/build/main/easymacro.html
+++ b/doc/build/main/easymacro.html
@@ -140,32 +140,9 @@
Calc
Writer
diff --git a/doc/build/searchindex.js b/doc/build/searchindex.js
index 7b15d07..da76163 100644
--- a/doc/build/searchindex.js
+++ b/doc/build/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["index","main/apendixes","main/application","main/base","main/calc","main/config","main/easymacro","main/email","main/examples","main/examples_app","main/examples_base","main/examples_calc","main/examples_draw","main/examples_writer","main/intro","main/paths","main/tools","main/tools_for_debug","main/writer"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["index.rst","main/apendixes.rst","main/application.rst","main/base.rst","main/calc.rst","main/config.rst","main/easymacro.rst","main/email.rst","main/examples.rst","main/examples_app.rst","main/examples_base.rst","main/examples_calc.rst","main/examples_draw.rst","main/examples_writer.rst","main/intro.rst","main/paths.rst","main/tools.rst","main/tools_for_debug.rst","main/writer.rst"],objects:{},objnames:{},objtypes:{},terms:{"0":[1,4,5,9,13,14,15,17],"008080":16,"02":14,"04":14,"06":[7,15,16],"07":14,"080315":16,"082211":16,"09":16,"0k":16,"1":[2,4,5,10,14,15,16,17],"10":[2,4,16],"100":11,"1090":1,"11":[14,16],"12":16,"125":[4,16],"126446":16,"128487":16,"13":[7,16],"14":16,"15":16,"16":16,"17":16,"18":16,"19":16,"2":[2,4,5,10,15,16,17],"20":[14,16],"200":[4,11,16],"2001":10,"2002":10,"2003":10,"2004":10,"2005":10,"2021":[7,14,15,16],"21":[15,16],"22":16,"23":[7,14,16],"24":[7,15],"26":[7,16],"27":16,"29":15,"3":[5,10,14,15],"30":7,"300":11,"34":16,"35":16,"3m":16,"4":[10,15,16],"40":14,"400":11,"41":14,"42":16,"43":[7,16],"46":16,"47":[15,16],"48":16,"495":7,"5":[10,16],"50":14,"500":[11,17],"53":[14,16],"6":16,"7":14,"7iznrbyw":7,"8859":15,"9":5,"abstract":6,"case":16,"catch":6,"class":10,"default":[2,7,15,16],"do":15,"export":6,"extensi\u00f3n":5,"final":[1,14],"function":[14,17],"import":[1,2,3,4,6,7,10,15,16,17,18],"new":[1,5,6,10,12,14],"null":10,"opci\u00f3n":5,"public":5,"return":[2,9,10,11,12,13,16,17],"super":16,"true":[1,2,5,7,10,12,15,16],"while":2,A:5,And:17,By:4,FOR:5,For:[0,2,5,8,15,16],If:[4,5,6,7,17],In:[5,14,16],Is:[2,5,6,16],It:[5,6],Of:16,One:4,Ons:5,Or:15,The:5,To:6,With:[2,14],_2:4,a1:[1,11],a2:1,absolut:5,academ:13,access:4,act:15,action:[15,16],activ:[2,6,13,17,18],active_sheet:[4,11],add:[5,14,15,17],addin:[5,14],addonmenu:5,address:7,all:[0,2,5,6,7,15],along:5,alt:[5,9],alwai:[1,2,3,4,6,7,15,16,17,18],an:[6,15],ani:[2,5,6,7,16,17],apendix:[0,2],api:[6,15,16],app:[1,2,3,4,6,7,9,10,11,12,13,15,16,17,18],app_nam:[15,16],appli:4,applic:[0,5,6,8,16],april:11,apt:14,ar:[6,7,15,16],arbitrari:2,archlinux:14,arg:[2,16],argument:[2,5],ask:15,attach:7,automat:[5,11,17],autostyl:8,awt:2,b:[1,15],bar:2,base:[0,5,6,8],base_insert_data:10,base_select_data:10,basedatefield:10,basemodel:10,basic:[14,16],bcc:7,been:2,befor:[5,17],bergman:[7,10,16],best:16,better:[16,17],between:6,bin:[5,15],binari:6,blank:5,bmp:5,bodi:7,bool:5,born:10,both:16,box:6,build:15,bytesequ:1,c:14,cach:15,calc:[0,2,5,6,8,9,14,15],calc_data_to_cel:11,calcul:[11,16],call:6,call_dispatch:2,call_macro:16,can:[2,5,6,7,10,14,15,16,17],captur:16,catch_except:17,caution:[2,4,15,16],cc:7,cd:[5,14],cell:8,chang:15,charfield:10,clean:4,client:7,clipboard:[2,8],clock:16,clone:14,close:[6,7,12],code:[5,6,17],code_nam:4,color:6,color_html:16,color_nam:16,color_rgb:16,column:4,com:[1,2,7],command:[2,16],commandurl:9,common:2,complex:[6,16],compon:[5,14],compress:14,con:6,conf:[5,7,16],config:[7,15,16],configur:[0,6,7],confirm:15,connect:[3,7,10],contact:[4,10,16],contacto:10,contain:6,content:[2,15],context:[2,5,15],control:2,copi:[5,6,14,17],copy_from:4,copy_to:4,correctli:5,correo:7,cotillar:10,count:6,cours:[14,16],creat:[5,6,8,14],create_inst:2,create_t:10,cryptographi:16,csv:6,ctrl:[5,9],cuat:14,current:[5,6,16],custom:[6,8],danger:16,darkblu:16,darken:15,data:[1,2,6,8,9,16,17],data_to_dict:16,databas:[6,10],database_proxi:10,databaseproxi:10,date:[6,10,17],datetim:10,db:[3,10],de:5,debug:[0,2,6,7,9,15,16],decrypt:6,def:[2,9,10,11,12,13,16,17],defin:15,delet:[6,8],delete_menu:9,delin:15,descript:5,desktop1:2,desktop2:2,desktop:[2,16],detail:5,dev:14,develop:[5,6,14],dialog:2,dialogprovider2:2,dict:[7,10],dict_to_properti:16,dictionari:[5,6],difficult:17,digest:6,dir:6,dir_tmp:15,directli:[6,16],directori:[2,6,14],dispatch:6,displai:5,display_nam:5,displaynam:5,distribut:5,doc:[1,3,6,10,12,13,15],doc_sourc:4,document:[2,6,12,16],documentservic:1,docx:2,domain:14,don:[14,15],done:14,download:[14,15,16],draw:[0,2,5,8],drwxr:16,ds:2,dt:15,each:5,easi:16,easili:6,easymacro:[0,1,2,3,4,7,10,15,16,17,18],echochar:16,edit:5,either:5,el:5,elmau:[5,14,15],els:10,email:[0,6],en:[1,5,6],enabl:1,encapsul:1,encapsulado:1,encod:15,encrypt:6,encrypt_decrypt:16,end:[2,16],ep:1,epoch:16,eps_encapsulated_postscript:1,epub:7,error:6,errorbox:16,es:[1,5],etc:2,even:5,everi:16,exactli:5,exampl:[0,2,5,9],excel_doc:2,except:6,execut:[6,10,16],exist:[2,4,6,10],exists_app:15,exit:15,ext:15,extens:[0,2,6,17],extensionnam:5,extern:6,extract:15,f:[1,2,5,15],fals:[1,2,10],februari:11,field:[1,7],file1:7,file2:7,file:[0,2,6,7,14],file_nam:[15,16],file_test:5,fileformatvers:1,filter:[0,6,15],filter_nam:2,filterservic:1,finish:16,first:0,fit:5,flag:1,folder:[5,7,15],fonda:10,fonst:6,font:2,forget:14,form:2,format:[2,5,6,7,16],foundat:5,frame:2,free:[2,5],fresh:14,from:[2,6,7,8,10,14],from_csv:15,from_id:15,from_json:15,galleri:2,gandi:7,gener:[5,14],get:[0,6,10],get_color:16,get_config:16,get_desktop:2,get_dir:15,get_epoch:16,get_fil:15,get_filt:[1,2],get_font:2,get_json:16,get_queri:10,git:14,gnome:16,gnu:[5,16],gran:5,great:5,ha:2,happi:6,have:[5,17],he:15,header:[1,6],hello:[7,16],hi:15,hidden:[2,7,12,16],hide:[2,4],himself:15,home:[2,3,5,6,7,10,12,16,17],hope:5,html:15,http:[5,14,16],httpx:16,i18n:5,i:[2,7,14,16],id:[6,10],id_ext:15,id_fold:15,id_par:15,idea:15,identityfield:10,idl:5,idlc:5,imag:[5,8,15],immedi:15,impli:5,impress:[2,5],impress_eps_export:1,includ:5,index:[0,6,9,15],info:[5,6,9,14],info_debug:[6,9,16],inform:[15,17],ingrid:[7,10,16],init:15,initi:10,inputbox:6,insert:[4,8,9],insert_menu_in_calc:9,insid:4,instal:[0,5,6,10,16,17],instanc:[1,6],instruct:15,integ:5,intern:[2,5],introduct:0,invers:5,ipifi:16,is_dir:15,is_fil:15,is_mac:16,is_protect:4,is_win:16,iso:15,issu:17,iter:6,jane:10,januari:11,jefferson:15,join:6,json:6,json_dump:16,json_load:16,jun:16,kei:5,keyboard:5,kill:15,kim:10,know:15,label:[5,9],lang:16,languag:[5,16],languaj:16,last:4,later:5,layer:6,legacy_table_nam:10,len:[2,4],lessen:15,letmein:[2,4,16],letter_lov:16,lh:16,lib:5,librari:[0,1,2,3,4,7,9,15,16,18],libre_offic:15,libreoffic:[2,5,6,7,14,16,17],license_:5,license_en:5,light:15,like:5,limit:2,line:[2,16],link:5,linux:16,list:6,list_of_list:16,local:[7,14],localcrang:4,log:6,logo:[5,15],look:[2,5,16],loren:[7,10],loshap:4,love:7,ls:16,lu20665x29msz:15,m:9,mac:16,macro:[5,6,8,9,14],mai:[11,16],mail1:7,mail2:7,mail3:7,mail:7,main:[2,16],major:6,make:[6,8,14],manag:5,mandatori:1,mani:2,march:11,marion:10,mau:[2,3,5,7,10,12,15,16,17],mbox:7,md:15,me:15,measur:16,member:15,memori:2,menu:8,menu_main:5,merchant:5,merg:15,merge_zip:15,messag:[6,7],message1:7,message2:7,meta:10,method:[6,15],mi:5,mine:15,model:10,modifi:[2,5],modul:[0,16],module1:16,month:11,more:[4,5,6,7,15,16],move:[5,6,14],mri:6,msg:[2,17],msgbox:[2,3,4,6,9,12,15,16,17,18],multi:5,multipl:[4,15],mx:7,my:[0,5,9,16,17],my_app:16,my_extens:16,my_nam:4,mydoc:2,myfil:[2,15],myfirstextens:14,myfirstextension_v0:14,mygreatextens:5,mymacro:9,n:[5,7,14,15],name:[1,6,9,10,15,16,17],name_16:5,name_26:5,name_sourc:4,name_target:4,nbest:7,need:[10,16,17],net:[5,7,14,15],new_nam:15,new_path:2,new_sheet:4,newnam:4,newsheet2:4,newsheet:4,noexist:7,nombr:5,none:16,normal:[5,16],nosoffic:15,novak:10,now:[14,15,16],nwho:7,obj:[6,17],object:[2,4,6,17],od:[2,4,5,15],odb:[3,10],odt:[2,15,16],officemenubar:5,ok:16,one:[4,5,7,15,17],onli:[2,4,5,16],open:[5,6,12,17],oper:16,option1:5,option:[5,15],org:[5,16],origin:[2,4,6],os:[15,16],other:[2,4,7,15,16],other_nam:[2,15],othersheet:4,ott:15,our:[],out:16,output:16,overview:0,oxt:[14,15],p:15,pacman:14,page:[0,5],paramet:0,parent:6,part:5,particular:5,pass:5,password:[2,6,7,16],past:12,path:[0,3,6,7,10,12,16],path_dir:15,path_fil:15,path_hom:15,path_new:15,path_pygettext:5,path_python:15,path_sav:7,path_temp:15,path_tmp:15,path_url:15,path_zip:15,pathlib:15,pc:6,pdf:[6,15],peewe:10,pictur:[12,15,16],pip:10,planet:17,pleas:[5,17],png:[5,15,16],popen:16,port:7,posit:4,possibl:[5,7],postscript:1,pot:[5,14],present:1,presentationdocu:1,previous:2,print:[2,10],privat:16,probabl:6,problem:17,process:17,product:[8,17],program:6,project:[5,14,15,16,17],properti:[5,6],protect:6,provid:14,prueba:5,publish:5,purpos:5,py:[0,2,5,14],python3:5,python:[6,14,16],pyuno:[2,4,17],queri:10,question:6,r:[16,17],rang:[2,4,11],rapid:14,rdb:5,read:[2,6],read_bin:15,receiv:[5,15],recommend:[5,14],recurs:15,red:4,redistribut:5,regard:[7,16],regmerg:5,rel:5,rememb:[1,2,3,4,7,15,16,18],remerg:5,remov:[6,9],render:6,replac:6,replace_ext:15,repositori:14,request:16,requir:0,reset:4,respond:7,result:[2,15,16],rgb:4,row:[4,10],rtf:2,run:16,run_in_thread:[2,16],runtimeuid:2,rw:16,s:[5,6,14],safe_for_delet:15,same:[4,5,15,16],save:[6,7,8,17],save_bin:15,save_data:16,save_image_from_clipboard:12,save_log:17,save_tmp:15,sb:2,script:14,sdk:[5,14],search:0,second:16,secret:16,secur:7,see:5,select:[6,8],semant:5,send:[6,16],send_email:7,sent:7,server:7,servic:2,set:[2,5,6,8,15],set_config:16,setvalu:2,sha256:16,sha512:16,shape:4,share:5,sheet1:4,sheet2:4,sheet:[0,6,11],shell:17,shift:[5,9],shortcut:[5,9],should:5,show:[2,4,5,6,9,17],show_info_debug:9,show_messag:16,show_tim:16,simpl:6,size:[11,15],sleep:[2,16],soffic:[5,15],sofia:10,softwar:5,sometim:17,sophia:7,sort:6,sourc:[14,15],space:5,spreadsheet:4,srv:[2,15],ssl:7,standard:16,star:[1,2],start:[2,5,14,16,17],start_clock:16,start_tim:16,statu:2,stop:16,stop_clock:16,stop_tim:16,string:[5,6],style:13,stylenam:2,sub:16,subdir:15,subdirectori:15,subject:7,submenu:9,successfulli:14,sudo:14,sun:[1,2],support:[2,14,16],svfilteroptionsdialog:1,svg:15,svtool:1,system:[6,16],t:[5,14,15],t_shift_mod1_mod2:5,tab:6,tabl:8,taper:15,target:[12,15],technic:16,temp:6,temp_dir:15,templat:16,templatenam:1,tempor:6,teresa:17,term:5,test:[2,10,14,15,16,17],text:[2,5,6,16],than:7,thi:[2,5,14,15,16,17],thing:2,thoma:15,thread:[2,6,7],three:[4,15,17],thunderbird:7,ticket:17,time:[6,17],timer:6,timer_nam:16,titl:[5,16],tmp:15,tmp_:15,to_csv:15,to_json:15,to_pdf:2,to_system:15,to_url:15,todai:16,token:16,too:[5,7,16],tool:[0,5,6,9],toolbar:5,toolkit:2,total:[11,16],tu:5,tupl:[5,6,10,15],tuple_of_tupl:16,two:[4,5,15],txt:[15,17],type:[1,3,4,6,16,18],type_extens:5,u:10,ubuntu:14,ui:2,uicompon:1,uinam:[1,2],under:5,uniqu:5,uno:[2,6],uno_packag:15,unopkg:[5,14],unprotect:4,unzip:6,update_status_bar:2,urd:5,url:[5,6],url_open:16,us:[1,2,4,5,6,7,8,14,15,16,17],use_local:5,user:[4,7,14,15,16],userdata:1,usr:5,utf8:15,v:5,valid:4,valor:5,valu:[2,5],variant:16,verifi:[6,17],version:16,video:16,vim:5,visibl:6,wai:[7,15],walk:15,walk_dir:15,want:[5,15],warn:6,warranti:5,we:7,web:16,what:5,when:[5,15],where:5,who:15,window:16,without:[2,5,15],wizard:5,work:16,writer:[0,2,5,6,8],writer_table_set_styl:13,www:5,x:16,xl:2,xlsx:2,xml:15,xpathset:15,xr:16,you:[2,5,6,7,10,14,15,16,17],your:[5,6,7,16,17],yournam:5,zaz:[5,9,14,15],zazeasymacro_v0:15,zip:6,zip_cont:15},titles:["Welcome to ZAZ\u2019s documentation!","Apendixes","Application","Base","Calc","Configuration","Library easymacro.py","Email","Examples","For Application","For Base","For Calc","For Draw","For Writer","Introduction","Paths and files","Tools","Tools for debug","Writer"],titleterms:{"catch":17,"default":5,"export":2,"function":5,"new":[2,3,4],For:[9,10,11,12,13],If:2,Is:4,To:2,activ:4,all:[1,4],ani:15,apendix:1,applic:[2,9,15],author:5,autostyl:13,base:[3,10],binari:15,box:[16,17],calc:[1,4,11],call:[2,16,17],cell:11,clipboard:12,close:2,code:4,color:[4,16],configur:[5,15,16],contain:[2,4],content:[0,6,8],copi:[2,4,15],count:[2,4],creat:[2,10],csv:15,current:[2,4,18],custom:9,data:[10,11,15],databas:3,date:16,debug:17,decrypt:16,delet:[9,15],dictionari:16,digest:16,dir:[2,15],directori:15,dispatch:2,doc:[2,4,18],document:[0,4,15],domain:5,draw:12,easymacro:6,email:7,encrypt:16,error:[16,17],exampl:8,except:17,execut:15,exist:15,extens:[5,14,15],extern:16,file:[5,15,17],file_nam:2,filter:[1,2],first:14,fonst:2,format:15,from:[4,12,15,16],get:[1,2,4,15,16],header:4,home:15,icon:5,id:[5,15],imag:12,index:4,indic:0,info:[15,16,17],info_debug:17,inform:5,inputbox:16,insert:10,instal:[14,15],instanc:2,introduct:14,is_modifi:2,is_read_onli:2,is_sav:2,iter:2,join:15,json:[15,16],librari:6,libreoffic:15,licens:5,list:16,local:5,log:17,macro:16,main:5,make:[9,16],menu:[5,9],messag:[16,17],method:2,move:4,mri:17,my:14,name:[2,4,5],obj:2,open:[2,15,16],overview:14,paramet:5,parent:[4,5],password:4,past:2,path:[2,5,15],pc:16,pdf:2,program:[5,16],properti:[2,16],protect:4,py:6,pygettext:5,python:15,question:16,read:15,remov:4,render:16,replac:15,requir:14,s:0,save:[2,12,15,16],select:[2,4,10,15],send:7,set:[4,13],set_focu:2,sheet:[1,4],show:16,simpl:16,sort:4,status_bar:2,string:16,system:15,tab:4,tabl:[0,10,13],temp:15,tempor:15,test:5,text:15,thread:16,time:16,timer:16,titl:2,tool:[16,17],tupl:[4,16],type:[2,5,15],uid:2,unzip:15,url:[15,16],verifi:15,version:5,visibl:[2,4],warn:16,welcom:0,writer:[13,18],zaz:0,zip:15,zoom:2}})
\ No newline at end of file
+Search.setIndex({docnames:["index","main/apendixes","main/application","main/base","main/calc","main/config","main/easymacro","main/email","main/examples","main/examples_app","main/examples_base","main/examples_calc","main/examples_draw","main/examples_writer","main/intro","main/paths","main/tools","main/tools_for_debug","main/writer"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["index.rst","main/apendixes.rst","main/application.rst","main/base.rst","main/calc.rst","main/config.rst","main/easymacro.rst","main/email.rst","main/examples.rst","main/examples_app.rst","main/examples_base.rst","main/examples_calc.rst","main/examples_draw.rst","main/examples_writer.rst","main/intro.rst","main/paths.rst","main/tools.rst","main/tools_for_debug.rst","main/writer.rst"],objects:{},objnames:{},objtypes:{},terms:{"0":[1,4,5,9,13,14,15,17],"008080":16,"02":14,"04":14,"06":[7,15,16],"07":14,"080315":16,"082211":16,"09":16,"0k":16,"1":[2,4,5,10,14,15,16,17],"10":[2,4,16],"100":11,"1090":1,"11":[14,16],"12":16,"125":[4,16],"126446":16,"128487":16,"13":[7,16],"14":16,"15":16,"16":16,"17":16,"18":16,"19":16,"2":[2,4,5,10,15,16,17],"20":[14,16],"200":[4,11,16],"2001":10,"2002":10,"2003":10,"2004":10,"2005":10,"2021":[7,14,15,16],"21":[15,16],"22":16,"23":[7,14,16],"24":[7,15],"26":[7,16],"27":16,"29":15,"3":[5,10,14,15],"30":7,"300":11,"34":16,"35":16,"3m":16,"4":[4,10,15,16],"40":14,"400":11,"41":14,"42":16,"43":[7,16],"46":16,"47":[15,16],"48":16,"495":7,"5":[4,10,16],"50":14,"500":[11,17],"53":[14,16],"6":16,"7":14,"7iznrbyw":7,"8859":15,"9":5,"abstract":6,"case":16,"catch":6,"class":10,"default":[2,7,15,16],"do":15,"export":6,"extensi\u00f3n":5,"final":[1,14],"function":[14,17],"import":[1,2,3,4,6,7,10,15,16,17,18],"new":[1,5,6,10,12,14],"null":10,"opci\u00f3n":5,"public":5,"return":[2,9,10,11,12,13,16,17],"super":16,"true":[1,2,5,7,10,12,15,16],"while":2,A:5,And:17,By:4,FOR:5,For:[0,2,5,8,15,16],If:[4,5,6,7,17],In:[5,14,16],Is:[2,5,16],It:[5,6],Of:16,One:4,Ons:5,Or:15,The:5,To:6,With:[2,14],_2:4,a1:[1,4,11],a2:1,absolut:5,academ:13,access:4,act:15,action:[15,16],activ:[2,6,13,17,18],active_sheet:[4,11],add:[5,14,15,17],addin:[5,14],addonmenu:5,address:7,all:[0,2,5,7,15],along:5,alt:[5,9],alwai:[1,2,3,4,6,7,15,16,17,18],an:[6,15],ani:[2,5,6,7,16,17],apendix:[0,2],api:[6,15,16],app:[1,2,3,4,6,7,9,10,11,12,13,15,16,17,18],app_nam:[15,16],appli:4,applic:[0,5,6,8,16],april:11,apt:14,ar:[6,7,15,16],arbitrari:2,archlinux:14,arg:[2,16],argument:[2,5],ask:15,attach:7,automat:[5,11,17],autostyl:8,awt:2,b2:4,b:[1,15],bar:2,base:[0,5,6,8],base_insert_data:10,base_select_data:10,basedatefield:10,basemodel:10,basic:[14,16],bcc:7,been:2,befor:[5,17],bergman:[7,10,16],best:16,better:[16,17],between:6,bin:[5,15],binari:6,blank:5,bmp:5,bodi:7,bool:5,born:10,both:16,box:6,build:15,bytesequ:1,c:14,cach:15,calc:[0,2,5,6,8,9,14,15],calc_data_to_cel:11,calcul:[11,16],call:6,call_dispatch:2,call_macro:16,can:[2,5,6,7,10,14,15,16,17],captur:16,catch_except:17,caution:[2,4,15,16],cc:7,cd:[5,14],cell:8,chang:15,charfield:10,clean:4,client:7,clipboard:[2,8],clock:16,clone:14,close:[6,7,12],code:[5,6,17],code_nam:4,color:6,color_html:16,color_nam:16,color_rgb:16,column:4,com:[1,2,7],command:[2,16],commandurl:9,common:2,complex:[6,16],compon:[5,14],compress:14,con:6,conf:[5,7,16],config:[7,15,16],configur:[0,6,7],confirm:15,connect:[3,7,10],contact:[4,10,16],contacto:10,contain:6,content:[2,15],context:[2,5,15],control:2,copi:[5,6,14,17],copy_from:4,copy_to:4,correctli:5,correo:7,cotillar:10,count:6,cours:[14,16],creat:[5,6,8,14],create_inst:2,create_t:10,cryptographi:16,csv:6,ctrl:[5,9],cuat:14,current:[5,6,16],custom:[6,8],d5:4,danger:16,darkblu:16,darken:15,data:[1,2,6,8,9,16,17],data_to_dict:16,databas:[6,10],database_proxi:10,databaseproxi:10,date:[6,10,17],datetim:10,db:[3,10],de:5,debug:[0,2,6,7,9,15,16],decrypt:6,def:[2,9,10,11,12,13,16,17],defin:15,delet:[6,8],delete_menu:9,delin:15,descript:5,desktop1:2,desktop2:2,desktop:[2,16],detail:5,dev:14,develop:[5,6,14],dialog:2,dialogprovider2:2,dict:[7,10],dict_to_properti:16,dictionari:[5,6],difficult:17,digest:6,dir:6,dir_tmp:15,directli:[6,16],directori:[2,6,14],dispatch:6,displai:5,display_nam:5,displaynam:5,distribut:5,doc:[1,3,6,10,12,13,15],doc_sourc:4,document:[2,6,12,16],documentservic:1,docx:2,domain:14,don:[14,15],done:14,download:[14,15,16],draw:[0,2,5,8],drwxr:16,ds:2,dt:15,each:5,easi:16,easili:6,easymacro:[0,1,2,3,4,7,10,15,16,17,18],echochar:16,edit:5,either:5,el:5,elmau:[5,14,15],els:10,email:[0,6],en:[1,5,6],enabl:1,encapsul:1,encapsulado:1,encod:15,encrypt:6,encrypt_decrypt:16,end:[2,16],end_column:4,end_row:4,ep:1,epoch:16,eps_encapsulated_postscript:1,epub:7,error:6,errorbox:16,es:[1,5],etc:2,even:5,everi:16,exactli:5,exampl:[0,2,5,9],excel_doc:2,except:6,execut:[6,10,16],exist:[2,4,6,10],exists_app:15,exit:15,ext:15,extens:[0,2,6,17],extensionnam:5,extern:6,extract:15,f:[1,2,5,15],fals:[1,2,10],februari:11,field:[1,7],file1:7,file2:7,file:[0,2,6,7,14],file_nam:[15,16],file_test:5,fileformatvers:1,filter:[0,6,15],filter_nam:2,filterservic:1,finish:16,first:0,fit:5,flag:1,folder:[5,7,15],fonda:10,fonst:6,font:2,forget:14,form:2,format:[2,5,6,7,16],foundat:5,frame:2,free:[2,5],fresh:14,from:[2,6,7,8,10,14],from_csv:15,from_id:15,from_json:15,galleri:2,gandi:7,gener:[5,14],get:[0,6,10],get_color:16,get_config:16,get_desktop:2,get_dir:15,get_epoch:16,get_fil:15,get_filt:[1,2],get_font:2,get_json:16,get_queri:10,git:14,gnome:16,gnu:[5,16],gran:5,great:5,ha:2,happi:6,have:[5,17],he:15,header:1,hello:[7,16],hi:15,hidden:[2,7,12,16],hide:[2,4],himself:15,home:[2,3,5,6,7,10,12,16,17],hope:5,html:15,http:[5,14,16],httpx:16,i18n:5,i:[2,7,14,16],id:[6,10],id_ext:15,id_fold:15,id_par:15,idea:15,identityfield:10,idl:5,idlc:5,imag:[5,8,15],immedi:15,impli:5,impress:[2,5],impress_eps_export:1,includ:5,index:[0,9,15],info:[5,6,9,14],info_debug:[6,9,16],inform:[15,17],ingrid:[7,10,16],init:15,initi:10,inputbox:6,insert:[4,8,9],insert_menu_in_calc:9,insid:4,instal:[0,5,6,10,16,17],instanc:[1,6],instruct:15,integ:5,intern:[2,5],introduct:0,invers:5,ipifi:16,is_dir:15,is_fil:15,is_mac:16,is_protect:4,is_win:16,iso:15,issu:17,iter:6,jane:10,januari:11,jefferson:15,join:6,json:6,json_dump:16,json_load:16,jun:16,kei:5,keyboard:5,kill:15,kim:10,know:15,label:[5,9],lang:16,languag:[5,16],languaj:16,last:4,later:5,layer:6,legacy_table_nam:10,len:[2,4],lessen:15,letmein:[2,4,16],letter_lov:16,lh:16,lib:5,librari:[0,1,2,3,4,7,9,15,16,18],libre_offic:15,libreoffic:[2,5,6,7,14,16,17],license_:5,license_en:5,light:15,like:5,limit:2,line:[2,16],link:5,linux:16,list:6,list_of_list:16,local:[7,14],localcrang:4,log:6,logo:[5,15],look:[2,5,16],loren:[7,10],loshap:4,love:7,ls:16,lu20665x29msz:15,m:9,mac:16,macro:[5,6,8,9,14],mai:[11,16],mail1:7,mail2:7,mail3:7,mail:7,main:[2,16],major:6,make:[6,8,14],manag:5,mandatori:1,mani:2,march:11,marion:10,mau:[2,3,5,7,10,12,15,16,17],mbox:7,md:15,me:15,measur:16,member:15,memori:2,menu:8,menu_main:5,merchant:5,merg:15,merge_zip:15,messag:[6,7],message1:7,message2:7,meta:10,method:[6,15],mi:5,mine:15,model:10,modifi:[2,5],modul:[0,16],module1:16,month:11,more:[4,5,6,7,15,16],move:[5,14],mri:6,msg:[2,17],msgbox:[2,3,4,6,9,12,15,16,17,18],multi:5,multipl:[4,15],mx:7,my:[0,5,9,16,17],my_app:16,my_extens:16,my_nam:4,mydoc:2,myfil:[2,15],myfirstextens:14,myfirstextension_v0:14,mygreatextens:5,mymacro:9,n:[5,7,14,15],name:[1,6,9,10,15,16,17],name_16:5,name_26:5,name_sourc:4,name_target:4,nbest:7,need:[10,16,17],net:[5,7,14,15],new_nam:15,new_path:2,new_sheet:4,newnam:4,newsheet2:4,newsheet:4,noexist:7,nombr:5,none:16,normal:[5,16],nosoffic:15,novak:10,now:[14,15,16],nwho:7,obj:[6,17],object:[2,4,6,17],od:[2,4,5,15],odb:[3,10],odt:[2,15,16],officemenubar:5,ok:16,one:[4,5,7,15,17],onli:[2,4,5,16],open:[5,6,12,17],oper:16,option1:5,option:[5,15],org:[5,16],origin:[2,4,6],os:[15,16],other:[2,4,7,15,16],other_nam:[2,15],othersheet:4,ott:15,our:[],out:16,output:16,overview:0,oxt:[14,15],p:15,pacman:14,page:[0,5],paramet:0,parent:[],part:5,particular:5,pass:5,password:[2,7,16],past:12,path:[0,3,6,7,10,12,16],path_dir:15,path_fil:15,path_hom:15,path_new:15,path_pygettext:5,path_python:15,path_sav:7,path_temp:15,path_tmp:15,path_url:15,path_zip:15,pathlib:15,pc:6,pdf:[6,15],peewe:10,pictur:[12,15,16],pip:10,planet:17,pleas:[5,17],png:[5,15,16],popen:16,port:7,posit:4,possibl:[5,7],postscript:1,pot:[5,14],present:1,presentationdocu:1,previous:2,print:[2,10],privat:16,probabl:6,problem:17,process:17,product:[8,17],program:6,project:[5,14,15,16,17],properti:[5,6],protect:[],provid:14,prueba:5,publish:5,purpos:5,py:[0,2,5,14],python3:5,python:[6,14,16],pyuno:[2,4,17],queri:10,question:6,r:[16,17],rang:[2,6,11],rango:4,rapid:14,rdb:5,read:[2,6],read_bin:15,receiv:[5,15],recommend:[5,14],recurs:15,red:4,redistribut:5,regard:[7,16],regmerg:5,rel:5,rememb:[1,2,3,4,7,15,16,18],remerg:5,remov:9,render:6,replac:6,replace_ext:15,repositori:14,request:16,requir:0,reset:4,respond:7,result:[2,15,16],rgb:4,row:[4,10],rtf:2,run:16,run_in_thread:[2,16],runtimeuid:2,rw:16,s:[5,6,14],safe_for_delet:15,same:[4,5,15,16],save:[6,7,8,17],save_bin:15,save_data:16,save_image_from_clipboard:12,save_log:17,save_tmp:15,sb:2,script:14,sdk:[5,14],search:0,second:16,secret:16,secur:7,see:5,select:[6,8],semant:5,send:[6,16],send_email:7,sent:7,server:7,servic:2,set:[2,5,8,15],set_config:16,setvalu:2,sha256:16,sha512:16,shape:4,share:5,sheet1:4,sheet2:4,sheet:[0,6,11],shell:17,shift:[5,9],shortcut:[5,9],should:5,show:[2,4,5,6,9,17],show_info_debug:9,show_messag:16,show_tim:16,simpl:6,size:[11,15],sleep:[2,16],soffic:[5,15],sofia:10,softwar:5,sometim:17,sophia:7,sort:[],sourc:[14,15],space:5,spreadsheet:4,srv:[2,15],ssl:7,standard:16,star:[1,2],start:[2,5,14,16,17],start_clock:16,start_column:4,start_row:4,start_tim:16,statu:2,stop:16,stop_clock:16,stop_tim:16,string:[5,6],style:13,stylenam:2,sub:16,subdir:15,subdirectori:15,subject:7,submenu:9,successfulli:14,sudo:14,sun:[1,2],support:[2,14,16],svfilteroptionsdialog:1,svg:15,svtool:1,system:[6,16],t:[5,14,15],t_shift_mod1_mod2:5,tab:[],tabl:8,taper:15,target:[12,15],technic:16,temp:6,temp_dir:15,templat:16,templatenam:1,tempor:6,teresa:17,term:5,test:[2,10,14,15,16,17],text:[2,5,6,16],than:7,thi:[2,5,14,15,16,17],thing:2,thoma:15,thread:[2,6,7],three:[4,15,17],thunderbird:7,ticket:17,time:[6,17],timer:6,timer_nam:16,titl:[5,16],tmp:15,tmp_:15,to_csv:15,to_json:15,to_pdf:2,to_system:15,to_url:15,todai:16,token:16,too:[5,7,16],tool:[0,5,6,9],toolbar:5,toolkit:2,total:[11,16],tu:5,tupl:[5,6,10,15],tuple_of_tupl:16,two:[4,5,15],txt:[15,17],type:[1,3,4,6,16,18],type_extens:5,u:10,ubuntu:14,ui:2,uicompon:1,uinam:[1,2],under:5,uniqu:5,uno:[2,6],uno_packag:15,unopkg:[5,14],unprotect:4,unzip:6,update_status_bar:2,urd:5,url:[5,6],url_open:16,us:[1,2,4,5,6,7,8,14,15,16,17],use_local:5,user:[4,7,14,15,16],userdata:1,usr:5,utf8:15,v:5,valid:4,valor:5,valu:[2,5],variant:16,verifi:[6,17],version:16,video:16,vim:5,visibl:[],wai:[7,15],walk:15,walk_dir:15,want:[5,15],warn:6,warranti:5,we:7,web:16,what:5,when:[5,15],where:5,who:15,window:16,without:[2,5,15],wizard:5,work:16,writer:[0,2,5,6,8],writer_table_set_styl:13,www:5,x:16,xl:2,xlsx:2,xml:15,xpathset:15,xr:16,you:[2,5,6,7,10,14,15,16,17],your:[5,6,7,16,17],yournam:5,zaz:[5,9,14,15],zazeasymacro_v0:15,zip:6,zip_cont:15},titles:["Welcome to ZAZ\u2019s documentation!","Apendixes","Application","Base","Calc","Configuration","Library easymacro.py","Email","Examples","For Application","For Base","For Calc","For Draw","For Writer","Introduction","Paths and files","Tools","Tools for debug","Writer"],titleterms:{"catch":17,"default":5,"export":2,"function":5,"new":[2,3,4],For:[9,10,11,12,13],If:2,Is:4,To:2,activ:4,all:[1,4],ani:15,apendix:1,applic:[2,9,15],author:5,autostyl:13,base:[3,10],binari:15,box:[16,17],calc:[1,4,11],call:[2,16,17],cell:[4,11],clipboard:12,close:2,code:4,color:[4,16],configur:[5,15,16],contain:[2,4],content:[0,6,8],copi:[2,4,15],count:[2,4],creat:[2,10],csv:15,current:[2,4,18],custom:9,data:[10,11,15],databas:3,date:16,debug:17,decrypt:16,delet:[9,15],dictionari:16,digest:16,dir:[2,15],directori:15,dispatch:2,doc:[2,4,18],document:[0,4,15],domain:5,draw:12,easymacro:6,email:7,encrypt:16,error:[16,17],exampl:8,except:17,execut:15,exist:15,extens:[5,14,15],extern:16,file:[5,15,17],file_nam:2,filter:[1,2],first:14,fonst:2,format:15,from:[4,12,15,16],get:[1,2,4,15,16],header:4,home:15,icon:5,id:[5,15],imag:12,index:4,indic:0,info:[15,16,17],info_debug:17,inform:5,inputbox:16,insert:10,instal:[14,15],instanc:2,introduct:14,is_modifi:2,is_read_onli:2,is_sav:2,iter:2,join:15,json:[15,16],librari:6,libreoffic:15,licens:5,list:16,local:5,log:17,macro:16,main:5,make:[9,16],menu:[5,9],messag:[16,17],method:2,move:4,mri:17,my:14,name:[2,4,5],obj:2,open:[2,15,16],overview:14,paramet:5,parent:[4,5],password:4,past:2,path:[2,5,15],pc:16,pdf:2,program:[5,16],properti:[2,16],protect:4,py:6,pygettext:5,python:15,question:16,rang:4,read:15,remov:4,render:16,replac:15,requir:14,s:0,save:[2,12,15,16],select:[2,4,10,15],send:7,set:[4,13],set_focu:2,sheet:[1,4],show:16,simpl:16,sort:4,status_bar:2,string:16,system:15,tab:4,tabl:[0,10,13],temp:15,tempor:15,test:5,text:15,thread:16,time:16,timer:16,titl:2,tool:[16,17],tupl:[4,16],type:[2,5,15],uid:2,unzip:15,url:[15,16],verifi:15,version:5,visibl:[2,4],warn:16,welcom:0,writer:[13,18],zaz:0,zip:15,zoom:2}})
\ No newline at end of file
diff --git a/doc/source/main/calc.rst b/doc/source/main/calc.rst
index 16109a3..e1b599b 100644
--- a/doc/source/main/calc.rst
+++ b/doc/source/main/calc.rst
@@ -9,8 +9,11 @@ Remember, always import library.
import easymacro as app
+Document
+~~~~~~~~
+
Current doc
-~~~~~~~~~~~
+^^^^^^^^^^^
.. code-block:: python
@@ -19,7 +22,7 @@ Current doc
Selection
-~~~~~~~~~
+^^^^^^^^^
* If selection is range get LOCalcRange, if selection is shape get LOShape, other selection get original pyuno object.
@@ -31,7 +34,7 @@ Selection
Headers
-~~~~~~~
+^^^^^^^
* Hide or show columns and rows headers.
@@ -45,7 +48,7 @@ Headers
Tabs
-~~~~
+^^^^
* Hide or show tab sheets.
@@ -59,10 +62,10 @@ Tabs
Sheets
-^^^^^^
+~~~~~~
Active sheet
-~~~~~~~~~~~~
+^^^^^^^^^^^^
.. code-block:: python
@@ -75,7 +78,7 @@ Active sheet
Get by index
-~~~~~~~~~~~~
+^^^^^^^^^^^^
.. code-block:: python
@@ -85,7 +88,7 @@ Get by index
Get by name
-~~~~~~~~~~~
+^^^^^^^^^^^
.. code-block:: python
@@ -95,7 +98,7 @@ Get by name
Contains
-~~~~~~~~
+^^^^^^^^
.. code-block:: python
@@ -104,7 +107,7 @@ Contains
Get tuple with all names
-~~~~~~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: python
@@ -113,7 +116,7 @@ Get tuple with all names
Count
-~~~~~
+^^^^^
.. code-block:: python
@@ -121,7 +124,7 @@ Count
app.msgbox(len(doc))
New
-~~~
+^^^
* Always validate if new name not exists.
@@ -146,7 +149,7 @@ New
Move
-~~~~
+^^^^
* Move by object to last position.
@@ -184,7 +187,7 @@ Move
Remove
-~~~~~~
+^^^^^^
* Remove by object.
@@ -208,7 +211,7 @@ Remove
Copy
-~~~~
+^^^^
* Copy inside the same spreadsheet.
@@ -234,7 +237,7 @@ Copy
Copy from
-~~~~~~~~~
+^^^^^^^^^
* Copy sheet from one spreadsheet to other.
@@ -249,7 +252,7 @@ Copy from
Copy to
-~~~~~~~
+^^^^^^^
* Copy from sheet with the same name
@@ -269,7 +272,7 @@ Copy to
Sort
-~~~~
+^^^^
* Sort sheets by names.
@@ -279,7 +282,7 @@ Sort
doc.sort()
Name
-~~~~
+^^^^
* Name visible by the user.
@@ -292,7 +295,7 @@ Name
Code name
-~~~~~~~~~
+^^^^^^^^^
* Name only accessible by code.
@@ -305,7 +308,7 @@ Code name
Visible
-~~~~~~~
+^^^^^^^
* Apply only with spreadsheet with two or more sheets.
@@ -319,7 +322,7 @@ Visible
Is protected
-~~~~~~~~~~~~
+^^^^^^^^^^^^
* If sheet is protected with password.
@@ -330,7 +333,7 @@ Is protected
Set password
-~~~~~~~~~~~~
+^^^^^^^^^^^^
.. code-block:: python
@@ -340,7 +343,7 @@ Set password
Remove password
-~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^
.. code-block:: python
@@ -353,7 +356,7 @@ Remove password
Tab color
-~~~~~~~~~
+^^^^^^^^^
.. code-block:: python
@@ -369,7 +372,7 @@ Tab color
Document parent
-~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^
.. code-block:: python
@@ -377,7 +380,7 @@ Document parent
Activate
-~~~~~~~~
+^^^^^^^^
.. code-block:: python
@@ -392,7 +395,43 @@ Activate
sheet.activate()
+Ranges
+~~~~~~
+
+Cells
+^^^^^
+
+* By name
+
+.. code-block:: python
+
+ sheet = app.active_sheet
+ cell = sheet['A1']
+ app.msgbox(cell.name)
+* By position [row, column]
+
+.. code-block:: python
+
+ cell = sheet[1, 4]
+ app.msgbox(cell.name)
+Ranges
+^^^^^^
+
+* By name
+
+.. code-block:: python
+
+ sheet = app.active_sheet
+ rango = sheet['B2:D5']
+ app.msgbox(rango.name)
+
+* By position [start_row, end_row, start_column, end_column]
+
+.. code-block:: python
+
+ rango = sheet[1:5,1:4]
+ app.msgbox(rango.name)
diff --git a/source/easymacro.py b/source/easymacro.py
index 18adfec..e1b5f3c 100644
--- a/source/easymacro.py
+++ b/source/easymacro.py
@@ -1411,6 +1411,16 @@ class LOCalc(LODocument):
# ~ return LOCalcDataBaseRanges(self.obj.DataBaseRanges)
return self.obj.DatabaseRanges
+ @property
+ def ranges(self):
+ obj = self.create_instance('com.sun.star.sheet.SheetCellRanges')
+ return LOCalcRanges(obj)
+
+ def get_ranges(self, address: str):
+ ranges = self.ranges
+ ranges.add([sheet[address] for sheet in self])
+ return ranges
+
def activate(self, sheet):
obj = sheet
if isinstance(sheet, LOCalcSheet):
@@ -2948,6 +2958,49 @@ class LOCalcRange(object):
return values
+class LOCalcRanges(object):
+
+ def __init__(self, obj):
+ self._obj = obj
+ self._ranges = {}
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ pass
+
+ def __len__(self):
+ return self._obj.Count
+
+ def __contains__(self, item):
+ return self._obj.hasByName(item.name)
+
+ @property
+ def names(self):
+ return self._obj.ElementNames
+
+ @property
+ def data(self):
+ return [r.data for r in self._ranges.values()]
+
+ def add(self, rangos):
+ if isinstance(rangos, LOCalcRange):
+ rangos = (rangos,)
+ for r in rangos:
+ self._ranges[r.name] = r
+ self._obj.addRangeAddress(r.range_address, False)
+ return
+
+ def remove(self, rangos):
+ if isinstance(rangos, LOCalcRange):
+ rangos = (rangos,)
+ for r in rangos:
+ del self._ranges[r.name]
+ self._obj.removeRangeAddress(r.range_address)
+ return
+
+
class LOWriterStyles(object):
def __init__(self, styles):