¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo obtener la última fila de una hoja de Excel con ole2 desde ABAP

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 41 Vistas
0
Cargando...

Hola,

Me pregunto cómo puedo obtener la última fila de una hoja de Excel con ole2 desde Abap.

Gracias,

Joseph

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola Joseph,

por favor crea un archivo xls con algunos datos en la columna A e intenta el siguiente código:

TYPE-POOLS ole2.

DATA: excel         TYPE ole2_object,
      workbook_list TYPE ole2_object,
      workbook      TYPE ole2_object,
      cell          TYPE ole2_object,
      first_cell    TYPE ole2_object,
      last_cell     TYPE ole2_object,
      range         TYPE ole2_object,
      specialcell   TYPE ole2_object.

DATA path TYPE string.
DATA row  TYPE string.

path = 'C:\TMP\test.xls'.

* Ejecutar Excel
CREATE OBJECT excel 'EXCEL.APPLICATION'.

* Mostrar Excel
SET PROPERTY OF excel 'Visible' = 1.

* Obtener referencia a la lista de libros de trabajo en la aplicación
* está vacía por ahora
CALL METHOD OF excel 'Workbooks' = workbook_list.

* Abrir archivo existente
* se agregará a la lista de libros de trabajo
CALL METHOD OF workbook_list 'OPEN'
  EXPORTING #1 = path.

* Definir primera celda
CALL METHOD OF excel 'Cells' = first_cell
  EXPORTING
  #1 = 1  " Fila
  #2 = 1.     " Columna

* Definir última celda
CALL METHOD OF excel 'Cells' = last_cell
  EXPORTING
  #1 = 65536  " Fila
  #2 = 1.     " Columna

CALL METHOD OF excel 'Range' = range
  EXPORTING
  #1 = first_cell
  #2 = last_cell.

CALL METHOD OF range 'SpecialCells' = specialcell
  EXPORTING
  #1 = 11.


            
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Rea,

Gracias por tu respuesta.

No está funcionando. Obtengo 0 en [fila] después de hacer:

OBTENER PROPIEDAD DE [celdaespecial] 'FILA' = [fila].

Joseph

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Joseph,

después de haber creado los objetos ole necesarios, intenta lo siguiente:

- define el rango que deseas encontrar la última fila

CALL METHOD OF [excel.application] 'Range' = [range]
  EXPORTING
  #1 = [first_cell]
  #2 = [last_cell].

- llama al método SpecialCells con el parámetro xlCellTypeLastCell (que es 11)

CALL METHOD OF range 'SpecialCells' = [specialcell]
  EXPORTING
  #1 = 11.

- obtener la propiedad fila

GET PROPERTY OF [specialcell] 'ROW' = [row].

Saludos

rea

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Joseph,

después de haber creado los objetos ole necesarios, prueba lo siguiente:

- define el rango que deseas encontrar la última fila

CALL METHOD OF [excel.application] 'Range' = [rango]
  EXPORTING
  #1 = [primera_celda]
  #2 = [ultima_celda].

- llama al método SpecialCells con el parámetro xlCellTypeLastCell (que es 11)

CALL METHOD OF rango 'SpecialCells' = [celdaespecial]
  EXPORTING
  #1 = 11.

- obtener la propiedad fila

GET PROPERTY OF [celdaespecial] 'ROW' = [fila].

saludos

rea

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?