PHPExcel 出现 500 错误并且无法下载文件

问题描述 投票:0回答:0

我正在尝试使用 PHPExcel 文件下载 excel 文件,但是当我从数据库中获取数据时出现错误,否则会下载空白的 excel 文件。 我正在尝试使用 PHPExcel 文件下载 excel 文件,但是当我从数据库中获取数据时出现错误,否则会下载空白的 excel 文件。

这是我的 PHP 脚本。

include_once('../classes/PHPExcel.php');
$objPHPExcel_new = new PHPExcel();
$objPHPExcel_new->setActiveSheetIndex(0);
$filename = "transactions_" . date('ymdhis') . ".xlsx";
header('Content-Type: application/vnd.ms-excel');

header('Content-Disposition: attachment;filename="' . $filename . '";');
header('Cache-Control: max-age=0');

$styleArray = array('font' => array('bold' => true, 'color' => array('rgb' => '000000'), 'size' => 10,), 'fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => 'b7bbbf')), 'borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN, 'color' => array('rgb' => '000000'))), 'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,));
$styleAlignLeftArray = array('alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT,), 'borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN, 'color' => array('rgb' => '000000'))));

$objPHPExcel_new->getActiveSheet()->getColumnDimension('A')->setWidth(10);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('B')->setWidth(13);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('C')->setWidth(15);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('D')->setWidth(15);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('E')->setWidth(15);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('F')->setWidth(15);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('G')->setWidth(15);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('H')->setWidth(15);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('I')->setWidth(15);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('J')->setWidth(15);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('K')->setWidth(16);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('L')->setWidth(16);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('M')->setWidth(16);
$objPHPExcel_new->getActiveSheet()->getColumnDimension('N')->setWidth(16);
$iterationExcel = 1;
$objPHPExcel_new->getActiveSheet()->getCell('A' . $iterationExcel)->setValue('Booking ID');
$objPHPExcel_new->getActiveSheet()->getStyle('A' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('B' . $iterationExcel)->setValue('Current Status');
$objPHPExcel_new->getActiveSheet()->getStyle('B' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('C' . $iterationExcel)->setValue('Status Change');
$objPHPExcel_new->getActiveSheet()->getStyle('C' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('D' . $iterationExcel)->setValue('Chargeable By');
$objPHPExcel_new->getActiveSheet()->getStyle('D' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('E' . $iterationExcel)->setValue('Check In');
$objPHPExcel_new->getActiveSheet()->getStyle('E' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('F' . $iterationExcel)->setValue('Check Out');
$objPHPExcel_new->getActiveSheet()->getStyle('F' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('G' . $iterationExcel)->setValue('Nights');
$objPHPExcel_new->getActiveSheet()->getStyle('G' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('H' . $iterationExcel)->setValue('Currency');
$objPHPExcel_new->getActiveSheet()->getStyle('H' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('I' . $iterationExcel)->setValue('Total Price');
$objPHPExcel_new->getActiveSheet()->getStyle('I' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('J' . $iterationExcel)->setValue('Partner ID');
$objPHPExcel_new->getActiveSheet()->getStyle('J' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('K' . $iterationExcel)->setValue('Partner Name');
$objPHPExcel_new->getActiveSheet()->getStyle('K' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('L' . $iterationExcel)->setValue('Property ID');
$objPHPExcel_new->getActiveSheet()->getStyle('L' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('M' . $iterationExcel)->setValue('Property Name');
$objPHPExcel_new->getActiveSheet()->getStyle('M' . $iterationExcel)->applyFromArray($styleArray);
$objPHPExcel_new->getActiveSheet()->getCell('N' . $iterationExcel)->setValue('Property Country');
$objPHPExcel_new->getActiveSheet()->getStyle('N' . $iterationExcel)->applyFromArray($styleArray);
$iterationExcel = $iterationExcel + 1;

$bookingQuery = 'select book.id,
book.booking_code,
book.partner_resid,
book.checkout_date,
book.room_type,
book.status,
rdc.prt_id,
book.prop_currency,
book.booking_date,
book.checkin_date,
book.cart_id,
book.prop_id,
rdc.timezone as partner_timezone,
(select property.timezone from property where property.id=book.prop_id limit 1) as propertyTimeZone,
(select property.prop_currency_format from property where property.id=book.prop_id limit 1) as propertyCurrencyFormat,
(SELECT  cart.booking_step_2 FROM cartinfo cart where cart.id=book.cart_id limit 1) as bookingStep2
from `' . TBL_BOOKING . '` book 
left join rd_customer rdc on book.partnerid=rdc.id';

if (empty($bookingData)) {
    $objPHPExcel_new->getActiveSheet()->getCell('A' . $iterationExcel)->setValue('Record not found.');
    $objPHPExcel_new->getActiveSheet()->getStyle('A' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
    $objPHPExcel_new->getActiveSheet()->mergeCells('A' . $iterationExcel . ':N' . $iterationExcel);

    $iterationExcel = $iterationExcel + 1;
} else {

    foreach ($bookingData as $key => $value) {

        $objPHPExcel_new->getActiveSheet()->getCell('A' . $iterationExcel)->setValue($value['booking_code']);
        $objPHPExcel_new->getActiveSheet()->getStyle('A' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('B' . $iterationExcel)->setValue($value['booking_code']);
        $objPHPExcel_new->getActiveSheet()->getStyle('B' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('C' . $iterationExcel)->setValue($value['booking_code']);
        $objPHPExcel_new->getActiveSheet()->getStyle('C' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('D' . $iterationExcel)->setValue($value['booking_code']);
        $objPHPExcel_new->getActiveSheet()->getStyle('D' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('E' . $iterationExcel)->setValue($value['booking_code']);
        $objPHPExcel_new->getActiveSheet()->getStyle('E' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('F' . $iterationExcel)->setValue('Bosco');
        $objPHPExcel_new->getActiveSheet()->getStyle('F' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('G' . $iterationExcel)->setValue('Bosco');
        $objPHPExcel_new->getActiveSheet()->getStyle('G' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('H' . $iterationExcel)->setValue('Bosco');
        $objPHPExcel_new->getActiveSheet()->getStyle('H' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('I' . $iterationExcel)->setValue('Bosco');
        $objPHPExcel_new->getActiveSheet()->getStyle('I' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('J' . $iterationExcel)->setValue('Bosco');
        $objPHPExcel_new->getActiveSheet()->getStyle('J' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('K' . $iterationExcel)->setValue('Bosco');
        $objPHPExcel_new->getActiveSheet()->getStyle('K' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('L' . $iterationExcel)->setValue('Bosco');
        $objPHPExcel_new->getActiveSheet()->getStyle('L' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('M' . $iterationExcel)->setValue('Bosco');
        $objPHPExcel_new->getActiveSheet()->getStyle('M' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $objPHPExcel_new->getActiveSheet()->getCell('N' . $iterationExcel)->setValue('Bosco');
        $objPHPExcel_new->getActiveSheet()->getStyle('N' . $iterationExcel)->applyFromArray($styleAlignLeftArray);
        $iterationExcel = $iterationExcel + 1;
    }
}

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel_new, 'Excel2007');
$objWriter->save('php://output');

我期待从数据库中获取的数据下载 excel 表。

php phpexcel
© www.soinside.com 2019 - 2024. All rights reserved.