问候,
我无法弄清楚如何正确使用PHP,特别是PHPExcel.我已经阅读了关于这个主题的多篇帖子,但我一直在圈子里跑来跑去.这是我的代码的相关部分:
$viewinv = mysql_connect($sqlsrv,$username,$password);
if (!$viewinv) { die('Could not connect to SQL server. Contact administrator.'); }
mysql_select_db($database,$viewinv) or die('Could not connect to database. Contact administrator.');
$query = "select unit_id,config,location from inventory;";
$result = mysql_query($query);
if ($result = mysql_query($query) or die(mysql_error())) {
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('blah');
$rowNumber = 1;
$headings = array('Unit ID','Config','Location');
$objPHPExcel->getActiveSheet()->fromArray(array($headings),NULL,'A'.$rowNumber);
$rowNumber++;
while ($row = mysql_fetch_row($result)) {
$col = 'A';
foreach($row as $cell) {
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell);
$col++;
}
$rowNumber++;
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="myFile.xls"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
exit();
}
echo 'a problem has occurred... no data retrieved from the database';
PHPExcel肯定是从查询输出数据,我可以看到明文的点点滴滴,但它被大量的随机字符所包围,好像我正在查看压缩或编译的数据片段的内容.
例如:
PKah?>G’D2Xe[Content_Types].xml-”MN?0…÷?"ò%nY ??vAa ?(0?¤±ê?–gúw{&i‰@?nbE?{??yì?d??l me¥‘×áX?(??ü)?’òF1à?;@1_???±?c)j¢x/%ê…E?ày|
任何指针都将非常感激
最佳答案
通过将正确的编写器类型与正确的内容类型和文件扩展名相匹配,可能会解决该问题.
XLSX(办公室2007):
Writer : Excel2007 (PHPExcel_Writer_Excel2007)
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
XLS(2007年之前):
Writer : Excel5 (PHPExcel_Writer_Excel5)
Content-Type: application/vnd.ms-excel
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|