PHP - Como leer una tabla en word

 
Vista:

Como leer una tabla en word

Publicado por edysnay (2 intervenciones) el 29/09/2011 21:18:08
hola amigos soy nuevo en php y me hace falta saber como leer una tabla que está en un documento word y gestionarla como quiera , agregarle datos a sus filas y columnas , gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como leer una tabla en word

Publicado por Ramón Martín (1 intervención) el 21/08/2012 18:46:42
Primer paso: guardar el archivo como xml (con word) y luego haz un recorrido del xml con las herramientas de PHOP, por ejemplo:

$data = implode("", file($file)); // $file es tu archivo xml
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);

xml_parse_into_struct($parser, $data, $values, $tags);
var_dump(xml_get_error_code($parser));
xml_parser_free($parser);
$cont=0;
foreach($values as $k=>$v){

//tag de inicio de tabla
if(($v['tag']=='w:tbl')and($v['type']=='open')){
$texto.='<table style="width:auto;font-family:verdana;font-size:8pt;text-align:justify;" border="1" cellpadding="5px">';
}
//tag de inicio de fila
if(($v['tag']=='w:tr')and($v['type']=='open')){
$texto.='<tr>';
}

//tag de inicio de columna
if(($v['tag']=='w:tc')and($v['type']=='open')){
$col=1;
$texto.='<td>';
}
//cálculo de combinmación de filas si las hubiera en ola tabla. El de columnas es menos frecuente
if($v['tag']=='w:gridSpan'){
$col='';
$s='';
$col=$v['attributes']['w:val'];
$p=strripos($texto,'<td>');
$s='<td colspan="'.$col.'">';
$txt=mb_substr($texto,0,$p);
$texto=$txt.$s;
}

//tag de cierra de columnas
if(($v['tag']=='w:tc')and($v['type']=='close')){
$texto.='</td>';
}
//tag de cierre de filas
if(($v['tag']=='w:tr')and($v['type']=='close')){
$texto.='</tr>';
}
//tag de cierre de table
if(($v['tag']=='w:tbl')and($v['type']=='close')){
$texto.='</table>';
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar