gpt4 book ai didi

PHPExcel 文件格式或扩展名无效

转载 作者:行者123 更新时间:2023-12-04 21:58:17 39 4
gpt4 key购买 nike

我正在使用 phpexcel 将我的查询导出到 excel 文件中;但是在我创建文件(xslx 格式)后,我无法在 excel 中打开我的文件。它给出了“文件格式或扩展名无效。验证文件没有损坏并且文件扩展名与文件的文件格式匹配”错误。当我在文本编辑器中打开文件(我的是 npp)时,我看到了 php 文件的 css 代码和部分 html 代码。我的代码是这样的;

if( ! empty($_POST['export'])){
$query = "SELECT * FROM asd ORDER BY asdf LIMIT 10";
$headings = array('Timestamp', 'h1','h2');
require 'Classes/PHPExcel.php';

$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('List of Users');

$rowNumber = 1;
$col = 'A';
foreach($headings as $heading) {
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$heading);
$col++;
}

$rowNumber = 2;
while ($row = mysql_fetch_row($result)) {
$col = 'A';
foreach($row as $cell) {
$objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell);
$col++;
}
$rowNumber++;
}

$objPHPExcel->getActiveSheet()->freezePane('A2');

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

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="userList.xlsx"');
header("Content-Transfer-Encoding: binary ");
//ob_end_clean();
//header('Cache-Control: max-age=0');

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

我被卡住了请帮忙。谢谢你。

最佳答案

如手册中所述.... 如果 任何事情否则正在输出到浏览器,这将损坏输出文件。

在文本编辑器中打开该文件,并在输出的开头查找前导或尾随空白字符(空格、制表符、换行符)或 BOM 标记,或查找内容中任何明显的 PHP 纯文本错误消息。这些是导致此问题的最明显原因。一旦确定了虚假字符,请检查脚本以查看生成输出的位置,然后将其删除。

在您的情况下,这意味着 不要输出你的 css 和 html。

编辑

xlsx 是 OfficeOpenXML Excel2007 文件的扩展名,而不是 BIFF 8 xls 文件......在您的标题(mime 类型和文件扩展名)和 Writer 中保持一致

任何一个:

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="userList.xls"');

或者
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="userList.xlsx"');

关于PHPExcel 文件格式或扩展名无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16984132/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com