简体   繁体   English

PHPExcel无法正常工作

[英]PHPExcel won't work

I'm trying to print my SQL query that I have generated in PHP to an Excel file using PHPExcel. 我正在尝试使用PHPExcel将在PHP中生成的SQL查询打印到Excel文件。 I'm not sure where I've made a mistake, but every time I run my code, I get a blank page. 我不确定在哪里出错,但是每次运行代码时,我都会得到一个空白页。

This is my code: 这是我的代码:

<html>
<body>

<?php
mysql_connect("$host", $user, $password) or die("Couldn't connect to SQL Server on     $myServer");
mysql_select_db("$database") or die("Couldn't open database $myDB");

if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysql_connect_error();
}
require_once("includes/session.php"); 
require_once("includes/connection.php"); 
require_once("includes/functions.php");

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');

define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '
');

/** Include PHPExcel */
require_once '/Classes/PHPExcel.php';


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

$filter = $_SESSION['registry'];
$query = "SELECT sales.invoiceNo, invoiceDate, dueDate, customerID, customerName, dateTrans, postDate, description, grossSale, vat, netSale, quantity, branch, despatchNote  FROM sales2012 sales WHERE sales.invoiceNo IN (SELECT invoiceNo FROM sales2012 GROUP BY invoiceNo HAVING COUNT(invoiceNo)>1)";
$result_set = mysql_query($query);
        confirm_query($result_set);

// Add some data
$objPHPExcel->setActiveSheetIndex(0)
        ->setCellValue('A1', 'Invoice No')
        ->setCellValue('B1', 'Invoice Date')
        ->setCellValue('C1', 'Due Date')
        ->setCellValue('D1', 'Customer ID')
        ->setCellValue('E1', 'Customer Name')
        ->setCellValue('F1', 'Transaction Date')
        ->setCellValue('G1', 'Post Date')
        ->setCellValue('H1', 'Description')
        ->setCellValue('I1', 'Gross Sale')
        ->setCellValue('J1', 'VAT')
        ->setCellValue('K1', 'Net Sale')
        ->setCellValue('L1', 'Quantity')
        ->setCellValue('M1', 'Branch')
        ->setCellValue('N1', 'Despatch Note');


        $row = 2;
       while ($data = mysql_fetch_array($result_set)) {
        $objPHPExcel->setActiveSheetIndex(0)
        ->setCellValue('A' . $row, $data['invoiceNo'])
        ->setCellValue('B'. $row, $data['invoiceDate'])
        ->setCellValue('C'. $row, $data['dueDate'])
        ->setCellValue('D'. $row, $data['customerID'])
        ->setCellValue('E'. $row, $data['customerName'])
        ->setCellValue('F'. $row, $data['dateTrans'])
        ->setCellValue('G'. $row, $data['postDate'])
        ->setCellValue('H'. $row, $data['description'])
        ->setCellValue('I'. $row, $data['grossSale'])
        ->setCellValue('J'. $row, $data['vat'])
        ->setCellValue('K'. $row, $data['netSale'])
        ->setCellValue('L'. $row, $data['quantity'])
        ->setCellValue('M'. $row, $data['branch'])
        ->setCellValue('N'. $row, $data['descriptionNote']);
        $row++;
       }

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


$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save(str_replace('__FILE__,'/desktop/filename.xls',__FILE__));

?>
</body>
</html>

Any help would be much appreciated! 任何帮助将非常感激! Thanks 谢谢

maybe bucause you have the include : librarie excel2007 也许bucause您包括:librarie excel2007

require_once("Classes/PHPExcel/Writer/Excel2007.php"); require_once(“ Classes / PHPExcel / Writer / Excel2007.php”);

and when you save the document in excel2007 the extention is .xlsx 当您在excel2007中保存文档时,扩展名为.xlsx

$objWriter->save(str_replace(' FILE ,'/desktop/filename.xls', FILE )); $ objWriter-> save(str_replace(' FILE ,'/ desktop / filename.xls', FILE ));

this can be a option 这可以是一个选择

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007'); $ objWriter = PHPExcel_IOFactory :: createWriter($ objPHPExcel,'Excel2007');

$objWriter->save('php://output') $ objWriter-> save('php:// output')

$objWriter->save(
    str_replace('__FILE__,'/desktop/filename.xls',__FILE__)
);

Your str_replace() isn't valid syntax for PHP, I'm surprised this error isn't being logged somewhere... mismatched quotes, as any decent syntax highlighting editor would have told you 您的str_replace()对PHP来说不是有效的语法,我很惊讶这个错误没有记录在某处...引号不匹配,因为任何体面的语法高亮编辑器都会告诉您

And the silly thing is, you don't even need the str_replace. 愚蠢的是,您甚至不需要str_replace。 The PHPExcel Writer save() method expects a string value as a filename, it doesn't care how that string is generated, so just pass it a string PHPExcel Writer save()方法期望将字符串值作为文件名,它不在乎该字符串的生成方式,因此只需将其传递给字符串即可

$objWriter->save('/desktop/filename.xls');

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

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