Creación Excel y envío por mail

Buenos días,
estoy intentando enviar un Excel adjunto via mail.
Lo estoy haciendo como XML con el siguiente código… El problema es en que no puedo añadir dos tablas distintas en la misma hoja, ¿alguna idea?


* Creating a ixml Factory
  l_ixml = cl_ixml=>create( ).

* Creating the DOM Object Model
  l_document = l_ixml->create_document( ).

* Create Root Node 'Workbook'
  l_element_root  = l_document->create_simple_element( name = 'Workbook'  parent = l_document ).
  l_element_root->set_attribute( name = 'xmlns'  value = 'urn:schemas-microsoft-com:office:spreadsheet' ).

  ns_attribute = l_document->create_namespace_decl( name = 'ss'  prefix = 'xmlns'  uri = 'urn:schemas-microsoft-com:office:spreadsheet' ).
  l_element_root->set_attribute_node( ns_attribute ).

  ns_attribute = l_document->create_namespace_decl( name = 'x'  prefix = 'xmlns'  uri = 'urn:schemas-microsoft-com:office:excel' ).
  l_element_root->set_attribute_node( ns_attribute ).

* Create node for document properties.
  r_element_properties = l_document->create_simple_element( name = 'DIETETICA_PEDIDOS'  parent = l_element_root ).
  l_value = sy-uname.
  l_document->create_simple_element( name = 'Autor'  value = l_value  parent = r_element_properties  ).

* Styles
  r_styles = l_document->create_simple_element( name = 'Styles'  parent = l_element_root  ).

* Style for Header
  r_style  = l_document->create_simple_element( name = 'Style'   parent = r_styles  ).
  r_style->set_attribute_ns( name = 'ID'  prefix = 'ss'  value = 'Header' ).
* Worksheet
  r_worksheet = l_document->create_simple_element( name = 'Worksheet'  parent = l_element_root ).
  r_worksheet->set_attribute_ns( name = 'Name'  prefix = 'ss'  value = 'Sheet1' ).

* Table
  r_table = l_document->create_simple_element( name = 'Table'  parent = r_worksheet ).
  r_table->set_attribute_ns( name = 'FullColumns'  prefix = 'x'  value = '1' ).
  r_table->set_attribute_ns( name = 'FullRows'     prefix = 'x'  value = '1' ).

  r_column = l_document->create_simple_element( name = 'Column'  parent = r_table ).
  r_column->set_attribute_ns( name = 'Width'  prefix = 'ss'  value = '90' ).

r_row = l_document->create_simple_element( name = 'Row'  parent = r_table ).
  r_cell = l_document->create_simple_element( name = 'Cell'  parent = r_row ).
  r_cell->set_attribute_ns( name = 'StyleID'  prefix = 'ss'  value = 'header' ).
  r_data = l_document->create_simple_element( name = 'Data'  value = 'Centro'  parent = r_cell ).
*

En este punto si añado un r_table_2 y le asigno como parent la misma hoja entonces se vuelve loco y no me pinta nada…
¿Alguna solución? Gracias!

Buenas!, nunca probe realizar dos tablas, pero proba creando nuevamente el objeto que vas a adjuntar, iniciando desde aqui:

  • Creating a ixml Factory
    l_ixml = cl_ixml=>create( ).

  • Creating the DOM Object Model
    l_document = l_ixml->create_document( ).

Para la tabla dos, osea hacer todos los pasos, de creación de objetos, parametrización y la tabla.

1 me gusta

No me sirvió, al final lo solucioné creando rows antes de asignar las columnas de la tabla, dejo el código por si a alguien le puede servir de ayuda:

  r_row = l_document->create_simple_element( name = 'Row'  parent = r_table ).
  r_cell = l_document->create_simple_element( name = 'Cell'  parent = r_row ).
  r_cell->set_attribute_ns( name = 'StyleID'  prefix = 'ss'  value = 'CCABB' ).
  l_value = 'Centro: '.
  r_data = l_document->create_simple_element( name = 'Data'  value = l_value  parent = r_cell ).
  r_data->set_attribute_ns( name = 'Type' prefix = 'ss' value = 'String' ).

Saludos,

1 me gusta

Yo no se mucho de programación, pero entendí este estracto que me enviaron y me alegró la tarde, por eso lo comparto, espero que se relajen y les ayude a resolver el problema.


if (cup.coffee= EMPTY)
{ programmer =>; brain=off };


Salu2.

Este tema se cerró automáticamente 91 días después de la última publicación. No se permiten nuevas respuestas.