繁体   English   中英

空白页,没有下载PHPExcel

[英]Blank Page and No Download PHPExcel

谁能帮助我使用PHPExcel?

我有这个代码...

<?php
session_start();
include 'dbconnect.php';
date_default_timezone_set("Europe/Rome");

if (!isset($_SESSION['user'])) {
    header("Location: index.php");
}
$query = mysql_query("SELECT * FROM partner1 WHERE uid=" . $_GET['id']);
while ($userRow1 = mysql_fetch_assoc($query)) {

    /** Error reporting */
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    date_default_timezone_set('Europe/Rome');

    if (PHP_SAPI == 'cli')
        die('This example should only be run from a Web Browser');

    /** Include PHPExcel */
    require_once dirname(__FILE__) . '/Classes/PHPExcel.php';


// Create new PHPExcel object
    $objPHPExcel = new PHPExcel();

    $objPHPExcel->getActiveSheet()->getStyle("A1:A27")->getFont()->setBold(true);
    $objPHPExcel->getActiveSheet()->getStyle("A1:A27")->getFont()->setSize(16);
    $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('3')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('4')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('5')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('6')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('7')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('8')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('9')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('10')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('11')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('12')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('13')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('14')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('15')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('16')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('17')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('18')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('19')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('20')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('21')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('22')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('23')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('24')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('25')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('26')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getRowDimension('27')->setRowHeight(40);
    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
    $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);


// Set document properties
    $objPHPExcel->getProperties()->setCreator("Test 123")
        ->setLastModifiedBy("-")
        ->setTitle("" . $userRow1['nome'] . " " . $userRow1['cognome'] . "")
        ->setSubject("-")
        ->setDescription("-")
        ->setKeywords("-")
        ->setCategory("-");


// Add some data
    $objPHPExcel->setActiveSheetIndex(0)
        ->setCellValue('A1', 'Codice Op')
        ->setCellValue('A2', 'DATA:')
        ->setCellValue('A3', 'DATI CLIENTE')
        ->setCellValue('A4', 'Nome')
        ->setCellValue('A5', 'Cognome')
        ->setCellValue('A6', 'Data e Luogo di nascita')
        ->setCellValue('A7', 'Via')
        ->setCellValue('A8', 'Cumune,Cap,PR')
        ->setCellValue('A9', 'Telefono rete fissa')
        ->setCellValue('A10', 'Recapito Alternativo')
        ->setCellValue('A11', 'Tipo Documento')
        ->setCellValue('A12', 'Ente di rilascio')
        ->setCellValue('A13', 'Data Rilascio')
        ->setCellValue('A14', 'Data Scadenza')
        ->setCellValue('A15', 'Codice Fiscale')
        ->setCellValue('A16', 'PROPOSTA')
        ->setCellValue('A17', 'OFFERTA')
        ->setCellValue('A18', 'TIM VISION')
        ->setCellValue('A19', 'Modem (s/n)')
        ->setCellValue('A20', 'Gestore telefonico')
        ->setCellValue('A21', 'Codice di migrazione1')
        ->setCellValue('A22', 'Codice di migrazione2')
        ->setCellValue('A23', 'ICCID')
        ->setCellValue('A24', 'Numero per Smart')
        ->setCellValue('A25', 'Gestore Mobile')
        ->setCellValue('A26', 'Inserimento Elenco Telefonico')
        ->setCellValue('A27', 'NATIVO TELECOM')
        ->setCellValue('B1', '-')
        ->setCellValue('B2', '' . $userRow1['data'] . '')
        ->setCellValue('B3', '-')
        ->setCellValue('B4', '' . $userRow1['nome'] . '')
        ->setCellValue('B5', '' . $userRow1['cognome'] . '')
        ->setCellValue('B6', '' . $userRow1['natoil'] . '')
        ->setCellValue('B7', '' . $userRow1['via'] . '')
        ->setCellValue('B8', '' . $userRow1['cumune'] . ' , ' . $userRow1['cap'] . ' , ' . $userRow1['provincia'] . '')
        ->setCellValue('B9', '' . $userRow1['numero'] . '')
        ->setCellValue('B10', '' . $userRow1['ricapitodicell'] . '')
        ->setCellValue('B11', '' . $userRow1['documento'] . '')
        ->setCellValue('B12', '' . $userRow1['rilascio'] . '')
        ->setCellValue('B13', '' . $userRow1['scadenza'] . '')
        ->setCellValue('B14', '' . $userRow1['codicefiscale'] . '')
        ->setCellValue('B15', '-')
        ->setCellValue('B16', '' . $userRow1['ofertascelta'] . '')
        ->setCellValue('B17', '-')
        ->setCellValue('B18', '-')
        ->setCellValue('B19', '' . $userRow1['operatoretelefonico'] . '')
        ->setCellValue('B20', '' . $userRow1['codicemigrazione'] . '')
        ->setCellValue('B21', '' . $userRow1['iccid'] . '')
        ->setCellValue('B22', '' . $userRow1['celloftsm'] . '')
        ->setCellValue('B23', ' ')
        ->setCellValue('B24', '-')
        ->setCellValue('B25', '-')
        ->setCellValue('B26', '-')
        ->setCellValue('B27', '-');

// Rename worksheet
    $objPHPExcel->getActiveSheet()->setTitle('Simple');
    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
    $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15);


    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);


// Rename worksheet
    $objPHPExcel->getActiveSheet()->setTitle('Simple');
    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
    $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15);


// Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);


// Redirect output to a client’s web browser (Excel5)
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="01simple.xls"');
    header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
    header('Cache-Control: max-age=1');

// If you're serving to IE over SSL, then the following may be needed
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
    header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
    header('Cache-Control: cache, must-revalidate'); // HTTP/1.1
    header('Pragma: public'); // HTTP/1.0

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');
}

exit;

当我尝试读取数据库数据并将其下载为excel格式时,出现空白页且没有下载。

我对此没有任何错误。 我不知道该怎么办

显而易见的问题(只是在这段代码中徘徊)

if(!isset($_SESSION['user']))
{
    header("Location: index.php");
}

仍将继续执行其余代码

您将包括PHPExcel,创建一个新的PHPExcel对象,并在$userRow1 = mysql_fetch_assoc($query))循环$userRow1 = mysql_fetch_assoc($query))迭代的每一行的响应发送到浏览器。...我假设您确实希望将每一行写入同一文件

编辑

为了使答案简单而不是一堵墙,您的结构应类似于:

include 'dbconnect.php';

/** Include PHPExcel */
require_once dirname(__FILE__) . '/Classes/PHPExcel.php';

// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

$query=mysql_query("SELECT * FROM partner1 WHERE uid=".$_GET['id']);

while($userRow1 = mysql_fetch_assoc($query)) {
    // Add some data
    $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Codice Op')
            .....
    ;
}

// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');

// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;

还要注意,PHP中不建议使用mysql扩展,您实际上应该将mysqli或PDO与已准备好的语句/绑定变量一起使用,以保护脚本免受SQL注入

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM