dsdtszi0520538 2014-12-02 07:45 采纳率: 100%
浏览 30

使用PHPEXCEL重复文件

I have the next code on PHP using PHPEXCEL to export. The problem is users download data of another users sometimes. I check the user but something is wrong.

I think that it could be session problem but the user load fine.

<?
if(is_file("import.php")) {
require_once("import.php");
}else {
echo "No se encuentra import.php <br />";
}

if(is_file("funciones.php")) {
require_once("funciones.php");
}else {
echo "No se encuentra funciones.php <br />";
}
$user = JFactory::getUser();
$userid = $user->get('id');
$name = strtolower($user->get('name'));//Uso esta funci?n para cambiar a minusculas todo el texto.
$username = strtolower($user->get('username'));

if ($userid== 0){
print "No estas logueado en el sistema";
$pantalla=$usuario['username'];
print "$pantalla";
}
else{
$input = new jinput;
$tablaS= $username.'s';
$tablaD= $username.'d';
$link = mysql_connect("localhost","","");
$dbSelected = mysql_select_db("db",$link);
if ($dbSelected) 
$result=mysql_query("SELECT j.sfid, c.name FROM jerarquias j, Centros c WHERE j.cad='$username' AND j.sfid=c.sfid" );
$result2=mysql_query("SELECT t.ean, t.description, UPPER(g.gama), t.gama FROM tgamas t, gamas g WHERE g.idGama=t.gama ORDER BY 4,2");
require_once ('Classes/PHPExcel.php');
/** PHPExcel_Writer_Excel2007 */
// Crea un nuevo objeto PHPExcel
$objPHPExcel = new PHPExcel();

// Establecer propiedades
$objPHPExcel->getProperties()
->setCreator("Mperezr9")
->setLastModifiedBy("Mperezr9")
->setTitle("Listado de Stock")
->setSubject("Listado de Stock")
->setDescription("En este documento encuentras el listado de Stock de los centros de tu jerarquia sin los terminales incluidos en propuestas de devolucion")
->setKeywords("Excel Office 2003 openxml php");
//->setCategory("Pruebas de Excel");
// }
$c=0;

while ($record=mysql_fetch_row($result)){
//echo "no entra brother";
$matrizCentros[$c][0]=$record[0];//guardo sfid
$matrizCentros[$c][1]=$record[1];//guardo nombre
//echo $matrizCentros[$c][1];
++$c;
//echo 'while primero'; 
}

$c=0;
//While para rellenar todos los terminales de la tabla terminales
while ($record2=mysql_fetch_row($result2)){
//echo 'entra';
$matrizEans[$c][0]=$record2[0];//guardo ean
//echo $record[0];
$matrizEans[$c][1]=$record2[1];//guardo descripción
$matrizEans[$c][2]=$record2[2];//guardo gama
$objPHPExcel->setActiveSheetIndex(0)
->setCellValueByColumnAndRow(1,$c+2,$record2[1]); //Grabo en excel las descripciones de los terminales
$objPHPExcel->setActiveSheetIndex(0)
->setCellValueByColumnAndRow(0,$c+2,$record2[2]); //Grabo en excel la gama del terminal
++$c; 
}

$centros=count($matrizCentros);
for ($i=0;$i<$centros;$i++){
$tabla=strtolower($matrizCentros[$i][0].'s');
$objPHPExcel->setActiveSheetIndex(0)
->setCellValueByColumnAndRow($i+2,1,$matrizCentros[$i][1]); 
$result3=mysql_query("SELECT count(*), ean FROM $tabla GROUP BY ean");//guardo las cantidades de cada terminal que tenemos en stock en el centro
$c=0;
while ($record3=mysql_fetch_row($result3)){
$matrizStock[$c][0]=$record3[0];//guardo cantidad
$matrizStock[$c][1]=$record3[1];//ean
++$c;
}
//++$c; 
$eans=count($matrizEans)+1;
$stock=count($matrizStock); 
for ($h=0; $h<$eans;$h++){
for ($j=0;$j<$stock;$j++){ 
if ($matrizEans[$h][0]===$matrizStock[$j][1]){
$objPHPExcel->setActiveSheetIndex(0)
->setCellValueByColumnAndRow($i+2,$h+2,$matrizStock[$j][0]);
break; 
}
}
}
unset($matrizStock);
//$c=count($matrizEans);
//prueba para averiguar usuario en la columna GS y la fila 200
$objPHPExcel->setActiveSheetIndex(0)
->setCellValueByColumnAndRow(200,200,$username);

$objRichText = new PHPExcel_RichText();
//$objRichText->createText('GAMA');

$objBold = $objRichText->createTextRun('GAMA');
$objBold->getFont()->setBold(true);

// $objRichText->createText(' within the cell.');

$objPHPExcel->getActiveSheet()->getCell('A1')->setValue($objRichText);
}
//Autoajustamos tamaño de las columnas
$nCols = $centros; //set the number of columns

foreach (range(0, $nCols) as $col) {
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($col)->setAutoSize(true); 
}
// Renombrar Hoja
$objPHPExcel->getActiveSheet()->setTitle('Listado Stock Cad');

// Establecer la hoja activa, para que cuando se abra el documento se muestre primero.
$objPHPExcel->setActiveSheetIndex(0);

// Se modifican los encabezados del HTTP para indicar que se envia un archivo de Excel.
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="Listado de Stock Cad por gamas.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');//Excel5');
$objWriter->save('php://output');
exit;
} 
?>
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
    • ¥15 gdf格式的脑电数据如何处理matlab
    • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
    • ¥100 监控抖音用户作品更新可以微信公众号提醒
    • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
    • ¥70 2048小游戏毕设项目
    • ¥20 mysql架构,按照姓名分表
    • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
    • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
    • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题