Ver Mensaje Individual
  #3
Antiguo 13 de febrero de 2020, 17:25
Gusaiello
Forero Activo
Concurso: Segundo puesto: Ganador/a del Segundo puesto en un concurso - Issue reason: Generador de código QR encriptado Activista del Foro: Activista del Foro - Issue reason: Por aportar ejecrcicios para los novatos 
Última Actividad 02.10.2026 12:31
Posts Posts: 236
Likes enviados Enviados: 150
Likes recibidos Recibidos: 139

Esto lo encontré una vez dando vueltas por internet y me ha sido de gran utilidad, pero esta hecho para AcuCobol, no se que ajustes habrá que jacer para RM o Power.


Código COBOL:
  1.        identification division.
  2.        program-id. leo-excel.
  3.      *Raul E. Ramirez [email][email protected][/email]  
  4.      *Nota Siempre cerrar el excel desde Archivo Salir
  5.        ENVIRONMENT     DIVISION.
  6.        CONFIGURATION   SECTION.
  7.        SPECIAL-NAMES.
  8.             copy "..\def\excel.def".
  9.             DECIMAL-POINT IS COMMA.
  10.        INPUT-OUTPUT    SECTION.
  11.        FILE-CONTROL.
  12.               SELECT ACHEQUE ASSIGN DISK
  13.                              ORGANIZATION IS INDEXED
  14.                              ACCESS MODE IS DYNAMIC
  15.                              lock mode is automatic
  16.                              record key is KEY-CHE
  17.                              FILE STATUS IS FS-CHE.
  18.        DATA DIVISION.
  19.        FILE SECTION.
  20.        fd  ACHEQUE label record standard
  21.                     record 77 characters
  22.                     value of file-id "cheque.dat"
  23.                     data record REG-CHE.
  24.        01  REG-CHE.
  25.            02 KEY-CHE.
  26.               03 nro-che   PIC 9(10).
  27.            02 nom-che      PIC x(50).
  28.            02 imp-che      PIC 9(15)v99.
  29.        WORKING-STORAGE SECTION.
  30.      *----------------------------------------------------------------*
  31.        77  FS-CHE     pic xx value spaces.
  32.        78  newline    value x"0A".
  33.      *----------------------------------------------------------------*
  34.        77  HexcelApp usage is handle of Application.
  35.        77  Hoja1     usage is handle of Worksheet.
  36.        77  HexcelWkb usage is handle of Workbook.
  37.        77  Hrange    usage is handle of Range.
  38.      *----------------------------------------------------------------*
  39.        77  i          pic 9(15).
  40.        77  j          pic 99.
  41.        77  k          pic 9999.
  42.        77  g          pic 9(15).
  43.      *----------------------------------------------------------------*
  44.        01  coordenada.
  45.            02 letra  pic xx.
  46.            02 numero pic 999999.
  47.      *----------------------------------------------------------------*
  48.        01 ColRow.
  49.            02 wcol.
  50.               03 wcol-l  pic xx       value spaces.
  51.               03 wcol-n  pic 9(05)    value 0.
  52.               03 filler  pic x        value ":".
  53.               03 wrow-l  pic xx       value spaces.
  54.               03 wrow-n  pic 9(05)    value 0.
  55.      *----------------------------------------------------------------*
  56.        01  wreg-che.
  57.            02 wnro-che      PIC 9(10).
  58.            02 wnom-che      PIC x(50).
  59.            02 wimp-che      PIC 9(15)v99.
  60.        PROCEDURE DIVISION.
  61.        Inicio.
  62.      *----------------------------------------------------------------*
  63.            open OUTPUT ACHEQUE.
  64.            CLOSE ACHEQUE.
  65.            OPEN I-O ACHEQUE.
  66.      *----------------------------------------------------------------*
  67.      *Creo Aplicacion de Excel
  68.            Create @Application of @Excel Handle is HexcelApp.
  69.      *----------------------------------------------------------------*
  70.      *Busco planilla de excel
  71.            modify HexcelApp
  72.                 Application::Workbooks
  73.            ::Open "D:\clientes\pruebas\ej-act\excel\objetos\CHEQUE.xls".
  74.      *----------------------------------------------------------------*
  75.            inquire HexcelApp application::ActiveWorkbook in HexcelWkb.
  76.            inquire HexcelApp application::ActiveSheet    in hoja1.          
  77.      *----------------------------------------------------------------*
  78.            inquire hoja1 columns::item(1) in hrange.          
  79.      *----------------------------------------------------------------*
  80.            modify HexcelApp application::Visible = 0.
  81.      *----------------------------------------------------------------*
  82.            move 1 to I
  83.            move 0 to G.
  84.      *----------------------------------------------------------------*
  85.        CARGA.
  86.            add 1 to I.
  87.            if I > 5  go F-CARGA.
  88.            display I AT 1010.
  89.            display G AT 1210.
  90.      *----------------------------------------------------------------*
  91.      *Capturo datos de la celda --> A
  92.            move " A" to letra.
  93.            move i    to numero.
  94.            inquire hoja1 range(coordenada)::value wnro-che.
  95.            move wnro-che TO nro-che.
  96.      *----------------------------------------------------------------*
  97.      *Capturo datos de la celda --> B (Nombre)
  98.            move " B" to letra.
  99.            move i    to numero.
  100.            inquire hoja1 range(coordenada)::value wnom-che.
  101.            move wnom-che TO nom-che.
  102.      *----------------------------------------------------------------*
  103.      *Capturo datos de la celda --> C (Importe)
  104.            move " C" to letra.
  105.            move i    to numero.
  106.            inquire hoja1 range(coordenada)::value wimp-che.
  107.            move wimp-che TO imp-che.
  108.      *----------------------------------------------------------------*
  109.            write REG-CHE invalid
  110.                  display message box " " newline
  111.                   "Error - write " newline  newline  go carga.
  112.      *----------------------------------------------------------------*
  113.            add 1 to g.
  114.            GO CARGA.
  115.      *----------------------------------------------------------------*
  116.        F-CARGA.
  117.      *----------------------------------------------------------------*
  118.            close ACHEQUE.
  119.            modify HexcelApp application::Visible = 1.
  120.      *----------------------------------------------------------------*
  121.            display message box "Registros Grabados " g newline.
  122.      *----------------------------------------------------------------*
  123.            destroy hoja1.
  124.      *     modify  hexcelwkb   @close(0).
  125.            destroy HexcelWkb.
  126.      *     modify  hexcelapp   @quit().
  127.            destroy HexcelApp.
  128.      *----------------------------------------------------------------*
  129.            stop run.

La planilla CHEQUES.XLS tiene 3 columnas : en A esta el numero del cheque, en B el nombre y en C el importe.

Espero sea de utilidad.
Gusaiello is offline   Responder Con Cita