#1
|
|||
|
|||
varios sheets con ole
Objetos ole para excel.
Quiero meter en un excel datos pero en distintas hojas. Lo que me pasa es que cada hoja me machaca la anterior y al final solo me sale una. cada una de las hojas nuevas la creo asi: *&--------------------------------------------------------------------- *& Form nuevas_hojas *&--------------------------------------------------------------------- form nuevas_hojas using sheetname . CALL METHOD OF g_xlapp 'Worksheets' = g_newsheet "no flush EXPORTING #1 = 1 . CALL METHOD OF g_newsheet 'Activate'. CALL METHOD OF g_newsheet 'cells' = g_cell. "no flush. set property of g_newsheet 'NAME' = sheetname. endform. hay algun metodo o algo para ir pasando paginas. Nota: a priori no se cuantas hojas voy a necesitar |
#2
|
|||
|
|||
Cambia de trabajo preguntón!
|
#3
|
|||
|
|||
Prueba con esto, a mi me funciona en un report normalito que solo hace esto
REPORT Z_PRUEBAS_OLE . INCLUDE ole2incl. DATA: application TYPE ole2_object, workbook TYPE ole2_object, sheet TYPE ole2_object, cells TYPE ole2_object. START-OF-SELECTION. data: val type i value 8, nh type i value 1. create object application 'Excel.application'. set property of application 'Visible' = 1. call method of application 'Workbooks' = workbook. set property of application 'SheetsInNewWorkbook' = 5. call method of workbook 'Add'. call method of application 'Worksheets' = sheet exporting #1 = 2. call method of workbook 'ADD'. CALL METHOD OF application 'CELLS' = CELLs EXPORTING #1 = 2 #2 = 2. SET PROPERTY OF CELLs 'VALUE' = val. free object cells. free object sheet. do 4 times. add 1 to nh. call method of application 'Worksheets' = sheet exporting #1 = nh. CALL METHOD OF sheet 'Activate'. CALL METHOD OF application 'CELLS' = CELLs EXPORTING #1 = 3 #2 = 3. SET PROPERTY OF CELLs 'VALUE' = 14. free object cells. enddo.
__________________
Salu2
Carlos! |
#4
|
|||
|
|||
el detalle en tu codigo es q pones: CALL METHOD OF g_xlapp 'Worksheets' = g_newsheet "no flush EXPORTING #1 = 1 . cuando deberías poner: CALL METHOD OF g_xlapp 'Worksheets' = g_newsheet "no flush EXPORTING #1 = nro_hoja . donde nro_hoja varia segun la hoja donde quieres trabajar (1 , 2 , 3, ...) ahora, esto te servira solo para 3 hojas, ya q son las q tiene x defecto un libro excel. Si necesitas mas hojas, tendrías q declarar al incio: IF total_paginas > 3. total_paginas = total_paginas - 3. CALL METHOD OF APPLICATION 'WorkSheets' = SHEET. DO total_paginas TIMES. CALL METHOD OF SHEET 'Add'. ENDDO. ENDIF. o poner set property of application 'SheetsInNewWorkbook' = 5. salu2 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|