__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<!DOCTYPE html>
<html lang="es" dir="ltr">
<head>
<base href="../../../../">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Leer y escribir valores en intervalos</title>
<link rel="shortcut icon" href="media/navigation/favicon.ico">
<link type="text/css" href="normalize.css" rel="Stylesheet">
<link type="text/css" href="prism.css" rel="Stylesheet">
<link type="text/css" href="default.css" rel="Stylesheet">
<script type="text/javascript" src="polyfills.js"></script><script type="text/javascript" src="languages.js"></script><script type="text/javascript" src="es/langnames.js"></script><script type="text/javascript" src="flexsearch.debug.js"></script><script type="text/javascript" src="prism.js"></script><script type="text/javascript" src="help2.js" defer></script><script type="text/javascript" src="a11y-toggle.js" defer></script><script type="text/javascript" src="paginathing.js" defer></script><script type="text/javascript" src="es/bookmarks.js" defer></script><script type="text/javascript" src="es/contents.js" defer></script><script type="text/javascript" src="help.js" defer></script><meta name="viewport" content="width=device-width,initial-scale=1">
</head>
<body>
<header id="TopLeftHeader"><a class="symbol" href="es/text/shared/05/new_help.html"><div></div></a><a class="logo" href="es/text/shared/05/new_help.html"><p dir="auto">Ayuda de LibreOffice 25.2</p></a><div class="dropdowns"><div class="modules">
<button type="button" data-a11y-toggle="modules-nav" id="modules" aria-haspopup="true" aria-expanded="false" aria-controls="modules-nav">Módulo</button><nav id="modules-nav" hidden=""></nav>
</div></div></header><aside class="leftside"><input id="accordion-1" name="accordion-menu" type="checkbox"><label for="accordion-1" dir="auto">Contenido</label><div id="Contents" class="contents-treeview"></div></aside><div id="SearchFrame"><div id="Bookmarks">
<input id="search-bar" type="search" class="search" placeholder="Buscar en los marcadores del módulo elegido" dir="auto"><div class="nav-container" tabindex="0"><nav class="index" dir="auto"></nav></div>
</div></div>
<div id="DisplayArea" itemprop="softwareHelp" itemscope="true" itemtype="http://schema.org/SoftwareApplication">
<noscript><div id="WarnJS"><h1 dir="auto">Active JavaScript en el navegador para mostrar las páginas de ayuda de LibreOffice.</h1></div></noscript>
  <a id="bm_id41582391760114"></a>
    <meta itemprop="keywords" content="macros,read values from cells">
    <meta itemprop="keywords" content="macros,write values to cells">
  
  <h1 id="hd_id461623364876507" dir="auto">
<a id="title"></a>Lectura y escritura de valores en intervalos</h1>
  <p id="par_id781633210592228" class="paragraph" dir="auto">Las macros en LibreOffice Calc a menudo deben leer y escribir valores en hojas de cálculo. Esta página de la ayuda describe los diversos enfoques para acceder a hojas e intervalos y leer o escribir sus valores.</p>
  <div class="note">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/note.svg" alt="note" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id191633214565965" dir="auto">Todos los ejemplos presentados en esta página pueden ser implementados tanto en BASIC como en Python.</p></div>
</div>
<br>

  <h2 id="hd_id331633213558740" dir="auto">Acceder a una única celda</h2>
  <p id="par_id731633213581386" class="paragraph" dir="auto">El ejemplo siguiente introduce el valor numérico 123 en la celda «A1» de la hoja activa.</p>
  <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
    Dim oSheet as Object
    Dim oCell as Object
    oSheet = ThisComponent.CurrentController.getActiveSheet()
    oCell = oSheet.getCellRangeByName("A1")
    oCell.setValue(123)
  </code></pre></div>
  <p id="par_id131633213887433" class="paragraph" dir="auto">Se puede lograr lo mismo con Python:</p>
  <div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
    doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.getCurrentController().getActiveSheet()
    cell = sheet.getCellRangeByName("A1")
    cell.setValue(123)
  </code></pre></div>
  <p id="par_id861633214219511" class="paragraph" dir="auto">Observe que, en los ejemplos anteriores, la celda es accesible utilizando su nombre de intervalo «A1». Es también posible acceder a las celdas con la ayuda de índices, como si la hoja fuese una matriz en la que las columnas y filas están indizadas a partir de cero.</p>
  <p id="par_id161633214461067" class="paragraph" dir="auto">Esto se puede hacer utilizando el método <span class="literal">getCellByPosition(colIndex, rowIndex)</span>, que tiene en cuenta los índices de columna y fila. El ejemplo siguiente en Basic modifica el valor del texto en la celda "C1" (columna 2, fila 0).</p>
  <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
    oSheet = ThisComponent.CurrentController.getActiveSheet()
    oCell = oSheet.getCellByPosition(2, 0)
    oCell.setString("Hello")
  </code></pre></div>
  <p id="par_id221633214713436" class="paragraph" dir="auto">El ejemplo también puede implementarse en Python:</p>
  <div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
    doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.getCurrentController().getActiveSheet()
    cell = sheet.getCellByPosition(2, 0)
    cell.setString("Hello")
  </code></pre></div>
  <div class="note">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/note.svg" alt="note" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id101633215142970" dir="auto">La diferencia principal entre los scripts Python y Basic reside en la manera de acceder al objeto hoja utilizando la variable de contexto <span class="literal">XSCRIPTCONTEXT</span>. Después de esto, todos los métodos y propiedades son idénticos en Basic y en Python.</p></div>
</div>
<br>
  <h2 id="hd_id411633215666257" dir="auto">Valores, cadenas y fórmulas</h2>
  <p id="par_id861633215682610" class="paragraph" dir="auto">Las celdas de Calc pueden tener tres tipos de valores: numéricos, de cadena y fórmulas. Cada tipo posee sus propios métodos «get» y «set»:</p>
  <table border="1" class="" cellpadding="0" cellspacing="0">
   <tr>
       <th rowspan="" colspan="" class="tableheadcell" dir="auto">
           <p id="par_id191633215791905" class="tableheadintable" dir="auto">Tipo</p>
       </th>
       <th rowspan="" colspan="" class="tableheadcell" dir="auto">
           <p id="par_id381633215791905" class="tableheadintable" dir="auto">Get Method</p>
       </th>
       <th rowspan="" colspan="" class="tableheadcell" dir="auto">
           <p id="par_id111633215791905" class="tableheadintable" dir="auto">Set Method</p>
       </th>
   </tr>
   <tr>
       <td rowspan="" colspan="" dir="auto">
           <p id="par_id181633215791905" class="tablecontentintable" dir="auto">Numérico</p>
       </td>
       <td rowspan="" colspan="" dir="auto">
           <p id="par_id701633215791905" class="tablecontentintable" dir="auto"><span class="literal">getValue()</span></p>
       </td>
       <td rowspan="" colspan="" dir="auto">
           <p id="par_id391633215791905" class="tablecontentintable" dir="auto"><span class="literal">setValue(newValue)</span></p>
       </td>
   </tr>
    <tr>
       <td rowspan="" colspan="" dir="auto">
           <p id="par_id961633215932180" class="tablecontentintable" dir="auto">Texto</p>
       </td>
       <td rowspan="" colspan="" dir="auto">
           <p id="par_id641633215941293" class="tablecontentintable" dir="auto"><span class="literal">getString()</span></p>
       </td>
       <td rowspan="" colspan="" dir="auto">
           <p id="par_id731633215943212" class="tablecontentintable" dir="auto"><span class="literal">setString(newString)</span></p>
       </td>
    </tr>
    <tr>
       <td rowspan="" colspan="" dir="auto">
           <p id="par_id651633215984116" class="tablecontentintable" dir="auto">Fórmula</p>
       </td>
       <td rowspan="" colspan="" dir="auto">
           <p id="par_id151633215985290" class="tablecontentintable" dir="auto"><span class="literal">getFormula()</span></p>
       </td>
       <td rowspan="" colspan="" dir="auto">
           <p id="par_id661633215985584" class="tablecontentintable" dir="auto"><span class="literal">setFormula(newFormula)</span></p>
       </td>
    </tr>
  </table>
<br>
  <div class="note">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/note.svg" alt="note" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id21633215845395" dir="auto">En Calc, las fechas y los valores monetarios se consideran valores numéricos.</p></div>
</div>
<br>
  <p id="par_id221633216111353" class="paragraph" dir="auto">El ejemplo siguiente introduce valores numéricos en las celdas "A1" y "A2" e inserta una fórmula en la célda "A3" que devuelve la multiplicación de esos valores.</p>
  <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
    oSheet = ThisComponent.CurrentController.getActiveSheet()
    oCell = oSheet.getCellRangeByName("A1")
    oCell.setValue(10)
    oCell = oSheet.getCellRangeByName("A2")
    oCell.setValue(20)
    oCell = oSheet.getCellRangeByName("A3")
    oCell.setFormula("=A1*A2")
  </code></pre></div>
  <h2 id="hd_id321633216630043" dir="auto">Acceder a intervalos de hojas distintas</h2>
  <p id="par_id371633216672570" class="paragraph" dir="auto">Los ejemplos anteriores usaban la hoja activa únicamente para efectuar operaciones. Es posible acceder a intervalos de celdas de diferentes hojas por sus índices o sus nombres.</p>
  <p id="par_id861633216843382" class="paragraph" dir="auto">El ejemplo siguiente introduce un valor numérico en la celda "A1" de la hoja con nombre "Sheet2"</p>
  <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
    oSheet = ThisComponent.Sheets.getByName("Sheet2")
    oCell = oSheet.getCellRangeByName("A1")
    oCell.setValue(123)
  </code></pre></div>
  <p id="par_id611633217090743" class="paragraph" dir="auto">El ejemplo también puede implementarse en Python:</p>
  <div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
    doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.Sheets["Sheet2"]
    cell = sheet.getCellRangeByName("A1")
    cell.setValue(123)
  </code></pre></div>
  <p id="par_id631633217279518" class="paragraph" dir="auto">Las hojas son también accesibles con ayuda de índices en base cero que indican que la hoja se toma en cuenta según el orden en el que aparecen el el archivo Calc.</p>
  <p id="par_id291633264880172" class="paragraph" dir="auto">En BASIC, en lugar de utilizar el método <span class="literal">getByName</span>, utilice <span class="literal">Sheets(sheetIndex)</span> como se indica a continuación:</p>
  <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
    oSheet = ThisComponent.Sheets(0)
  </code></pre></div>
  <p id="par_id891633265000047" class="paragraph" dir="auto">Esto puede lograrse de manera similar en Python:</p>
  <div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
    sheet = doc.Sheets[0]
  </code></pre></div>
  <h2 id="hd_id451633265241066" dir="auto">Uso de la biblioteca ScriptForge</h2>
  <p id="par_id731633265268585" class="paragraph" dir="auto">Sírvase del servicio Calc de la biblioteca ScriptForge para obtener y establecer valores de celdas:</p>
  <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
    <p id="par_id551633265526538" class="paragraph" dir="auto">' Carga la biblioteca ScriptForge</p>
    <p id="par_id841633265526803" class="paragraph" dir="auto">GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")</p>
    <p id="par_id581633265527001" class="paragraph" dir="auto">' Obtiene acceso al documento actual de Calc</p>
    <p id="par_id721633265527202" class="paragraph" dir="auto">oDoc = CreateScriptService("Calc")</p>
    <p id="par_id751633265527427" class="paragraph" dir="auto">' Establece los valores de las celdas A1 y A2</p>
    <p id="par_id261633265527616" class="paragraph" dir="auto">oDoc.setValue("A1", "Hello")</p>
    <p id="par_id511633265527793" class="paragraph" dir="auto">oDoc.setValue("A2", 123)</p>
  </code></pre></div>
  <div class="note">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/note.svg" alt="note" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id781633267324929" dir="auto">El método <span class="literal">setValue</span> puede utilizarse para definir valores numéricos o de texto. Para definir una fórmula en una celda, utilice el método <span class="literal">setFormula</span>.</p></div>
</div>
<br>
  <p id="par_id251633265634883" class="paragraph" dir="auto">Con el servicio Calc, es posible efectuar la obtención y definición de valores de celdas en una sola línea de código. El ejemplo siguiente obtiene el valor de la celda «A1» y la muestra en un diálogo de mensaje.</p>
  <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
    Dim val as Variant, oDoc as Object
    oDoc = CreateScriptService("Calc")
    val = oDoc.getValue("A1")
    MsgBox val
  </code></pre></div>
  <p id="par_id521633608223310" class="paragraph" dir="auto">La biblioteca ScriptForge también simplifica el acceso a intervalos de distintas hojas, como se demuestra en el ejemplo siguiente:</p>
  <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
    Dim val1, val2
    ' Obtiene el valor de la celda "A1" de la hoja con nombre "Sheet1"
    val1 = oDoc.getValue("Sheet1.A1")
    ' Obtiene el valor de la celda "B3" de la hoja con nombre "Sheet2"
    val2 = oDoc.getValue("Sheet2.B3")
    ' Coloca el resultado de la multiplicación en la celda "A1" de la hoja "Report"
    Dim result : result = val1 * val2
    oDoc.setValue("Report.A1", result)
  </code></pre></div>
  <p id="par_id431633266057163" class="paragraph" dir="auto">Los ejemplos anteriores pueden asimismo implementarse en Python:</p>
  <div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
    from scriptforge import CreateScriptService
    doc = CreateScriptService("Calc")
    doc.setValue("A1", "Hello")
  </code></pre></div>
  <div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
    doc = CreateScriptService("Calc")
    bas = CreateScriptService("Basic")
    val = doc.getValue("A1")
    bas.MsgBox(val)
  </code></pre></div>
  <div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
    first_val = doc.getValue("Sheet1.A1")
    second_val = doc.getValue("Sheet2.B3")
    result = first_val * second_val
    doc.setValue("Report.A1", result)
  </code></pre></div>
  <a id="relatedtopics"></a><div class="relatedtopics">
<p class="related" itemprop="mentions" dir="auto"><a id="related"></a><span class="emph">Temas relacionados</span></p>
<div class="relatedbody" itemprop="mentions">
    <div class="embedded"><p class="embedded" dir="auto"><a target="_top" href="es/text/sbasic/shared/03/lib_ScriptForge.html">La biblioteca <span class="literal">ScriptForge</span></a></p></div>
    <div class="embedded"><p class="embedded" dir="auto"><a target="_top" href="es/text/sbasic/shared/03/sf_calc.html"><span class="literal">SFDocuments</span>.<span class="literal">Calc</span> service</a></p></div>
    <div class="embedded"><p class="embedded" dir="auto"><a target="_top" href="es/text/sbasic/python/python_programming.html">Programar con secuencias de órdenes en Python</a></p></div>
  </div>
</div>
  </div>
<div id="DonationFrame"></div>
<footer><h2 style="text-align: center;"><a href="https://books.libreoffice.org" target="_blank">Libros de LibreOffice</a></h2>
<div class="noteicon" dir="auto" style="display:flex;justify-content:center;flex-wrap:wrap;row-gap:15px;">
<img src="media/navigation/libo-writer.svg" alt="Writer Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-calc.svg" alt="Calc Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-impress.svg" alt="Impress Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-draw.svg" alt="Draw Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-base.svg" alt="Base Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-math.svg" alt="Math Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-symbol-black.svg" alt="Getting Started Icon" style="width:60px;height:60px;">
</div>
<div id="DEBUG" class="debug">
<h3 class="bug">Help content debug info:</h3>
<p dir="auto">This page is: <a href="https://opengrok.libreoffice.org/xref/help/source/text/sbasic/guide/read_write_values.xhp" target="_blank">/text/sbasic/guide/read_write_values.xhp</a></p>
<p dir="auto">Title is: Leer y escribir valores en intervalos</p>
<p id="bm_module" dir="auto"></p>
<p id="bm_system" dir="auto"></p>
<p id="bm_HID" dir="auto"></p>
</div></footer>
</body>
</html>

Filemanager

Name Type Size Permission Actions
access2base.html File 9 KB 0644
basic_2_python.html File 19.88 KB 0644
basic_examples.html File 5.73 KB 0644
calc_borders.html File 18.93 KB 0644
control_properties.html File 5.74 KB 0644
create_dialog.html File 6.62 KB 0644
insert_control.html File 6.07 KB 0644
read_write_values.html File 19.41 KB 0644
sample_code.html File 11.1 KB 0644
show_dialog.html File 7.01 KB 0644
translation.html File 11.39 KB 0644
Filemanager