считываем docx в xstring
Code:
l_data_xml = cl_openxml_helper=>load_local_file ( l_filename ).
достаем содержимое файла.
Code:
CREATE OBJECT gr_zipper.
gr_zipper-> load( string ).
gr_zipper-> get( EXPORTING name = 'word/document.xml' IMPORTING content = gv_document ).
gr_ixml = cl_ixml=>create ( ).
gr_stream_factory = gr_ixml->create_stream_factory ( ).
gr_istream = gr_stream_factory->create_istream_xstring ( gv_document ).
gr_document = gr_ixml->create_document ( ).
gr_parser = gr_ixml->create_parser ( stream_factory = gr_stream_factory
istream = gr_istream
document = gr_document ).
gr_parser-> parse( ).
идем по таблицам
Code:
lr_ffilter = lr_nnode ->create_filter_name( name = 'tbl' namespace = 'w' ).
lr_fiterator = lr_nnode ->create_iterator_filtered( lr_ffilter ).
lr_fnode = lr_fiterator ->get_next( ).
идем строкам таблицы
Code:
lr_ffilter = lr_nnode ->create_filter_name( name = 'tr' namespace = 'w' ).
lr_fiterator = lr_nnode ->create_iterator_filtered( lr_ffilter ).
lr_fnode = lr_fiterator ->get_next( ).
идем по ячейкам
Code:
lr_ffilter = lr_nnode ->create_filter_name( name = 'tc' namespace = 'w' ).
lr_fiterator = lr_nnode ->create_iterator_filtered( lr_ffilter ).
lr_fnode = lr_fiterator ->get_next( ).
lv_value = lr_fnode->get_value().
Конечно копаться в мозгах XML файла дело неблагодарное

, но как вариант.