tengo un pequeño problema con esta librería, y a la hora de trabajar con varias hojas de un mismo libro
este seria el codigo:
Código PHP:
Ver original
<? require ("../class/excel/Writer.php"); // Percentatge d'increment $perce = $_POST['perce']; if($perce ==''){ $perce = 1; } // - Dates Desde i Fins $datadesde = $_POST['datadesde']; $datafins = $_POST['datafins']; //funcio perque em retorni la mateixa data pero amb un any menys function resta_any($datacanvi){ $dia = $datapart['0']; $mes = $datapart['1']; $any = $datapart['2']; $anypassat = $any - 1; $data_nova = $anypassat.$mes.$dia; return $data_nova; } $datadesdep = resta_any($datadesde); $datafinsp = resta_any($datafins); // -- WHERE de les dates de la SQL $wheredates = ""; $wheredates = " WHERE data >= ".$datadesdep." AND data <= ".$datafinsp." "; // -- WHERE de les tendes (una o varies) $wheretenda = ""; if($_POST['id_tenda'] != 0){ $wheretenda = " AND id_tenda =".$_POST['id_tenda'].""; } // -- SQL per saber el q s'ha venut l'any passat resumit per article $str_vart = "SELECT id_tenda, id_article, data, sum(partides) as partides, sum(pes) as pes, sum(total) as total FROM lin_tickets ".$wheredates." ".$wheretenda." GROUP BY id_tenda,data,id_article ORDER BY id_tenda, data, id_article ASC"; $sql_vart = mysql_query($str_vart) or die("Error SQL Venda per Article: ".$str_vart."<br>".mysql_error()); $filename = 'Previsio_Opan.xls'; $workbook = new Spreadsheet_Excel_Writer(); $workbook->send($filename); // Look at documentation $workbook->setVersion(8); // Temporary files directory $workbook->setTempDir('/tmp'); $datamem = ""; $tendamem = ""; // Definira la fila $fila = 0; if($tendamem != $rs_vart['id_tenda']){ $str_nomtenda = "SELECT tendes FROM tendes WHERE id_tenda = ".$rs_vart['id_tenda']; $sql_nomtenda = mysql_query($str_nomtenda) or die("Error SQL Nom Tenda: ".$str_nomtenda."<br>".mysql_error()); $nom_tenda = $rs_nomtenda['tendes']; $tendamem = $rs_vart['id_tenda']; $datamem = ""; $worksheet =& $workbook->addWorksheet($nom_tenda); $worksheet->setInputEncoding('UTF-8'); $worksheet->setMargins(0.25); $worksheet->centerHorizontally(1); $worksheet->activate(); $format_header =& $workbook->addFormat(); $format_header->setBold(); $format_header->setSize(12); } if($datamem != $rs_vart['data']){ $datamemg = giragiradata($rs_vart['data']); $worksheet->write($fila, 0, $nom_tenda,$format_header); $worksheet->write($fila, 1, $datamemg,$format_header); $fila++; $worksheet->write($fila, 0, 'Codi',$format_header); $worksheet->write($fila, 1, 'Article',$format_header); $worksheet->write($fila, 2, 'Partides',$format_header); $worksheet->write($fila, 3, 'Pes',$format_header); $worksheet->write($fila, 4, 'Previsio',$format_header); $fila++; $datamem = $rs_vart['data']; } $format_row =& $workbook->addFormat(); $format_row->setSize(12); // Nom Article $str_narticle = "SELECT nom_article FROM famart WHERE id_article=".$rs_vart['id_article']; $sql_narticle = mysql_query($str_narticle) or die("Error SQL Nom Article: ".$str_narticle."<br>".mysql_error()); if($nrg_narticle !=0){ $nomarticle = $rs_narticle['nom_article']; }else{ if($rs_vart['id_article'] >= 999997 ){ $nomarticle = "COMODI"; }else{ $nomarticle = " // SENSE NOM // "; } } if($perce != 0){ $previsio = $rs_vart['partides'] + ($rs_vart['partides'] * $perce / 100); }else{ $previsio = $rs_vart['partides']; } $worksheet->write($fila, 0, "$rs_vart[id_article]"); $worksheet->write($fila, 1, "$nomarticle"); $worksheet->setColumn($fila, 1, 30); $worksheet->write($fila, 2, "$rs_vart[partides]"); $worksheet->write($fila, 3, "$rs_vart[pes]"); $worksheet->write($fila, 4, "$previsio"); $fila++; } $workbook->close(); ?>
Lo que hace el código es que cuando detecta un cambio de empresa/tienda separa los resultados en diferentes hojas según la tienda que sea.
Las hojas me las crea correctamente, en la primera mete el resultado correcto, pero en las demás me las deja en blanco y mi duda es porque?
Sobre la liniea 86 podréis ver donde se crea la nueva hoja
Saludos y gracias
