我正在编写一个从邮件附件中读取.xls和.xlsx文件的脚本。我正在尝试使用identify方法根据文件扩展名在阅读器之间切换脚本。
$strSheetNameResult = 'QA Result';
$strSheetNameComments = 'QA Comments';
foreach($aPaths as $strPath) {
try {
$strFileType = PHPExcel_IOFactory::identify($strPath);
echo $strFileType;
$oReader = PHPExcel_IOFactory::createReader($strFileType);
$oReader->setLoadSheetsOnly($strSheetNameResult);
$oSheetData = $oReader->load($strPath)->getActiveSheet();
.xls工作正常,但是一旦遇到.xlsx文件,它就不会使用正确的读者并给我一个错误:`致命错误:
在第37行的C:\ xampp \ htdocs \ cronjob \ Test.php中的非对象上调用成员函数getCell()
第37行:
$aSheetData['strProjectName'] = $oSheetData->getCell('B4')->getValue();
我认为这个错误是因为它没有使用正确的读者。
$aPaths
:
Array(
[0] => C:\xampp\tmp\105943-632345.xls
[1] => C:\xampp\tmp\112047-634744.xlsx
[2] => C:\xampp\tmp\112069-634917.xls
[3] => C:\xampp\tmp\113840-634955.xls
[4] => C:\xampp\tmp\115760-635374.xlsx
[5] => C:\xampp\tmp\120294-637780.xls
[6] => C:\xampp\tmp\120801-638144.xls
[7] => C:\xampp\tmp\121098-638118.xls
[8] => C:\xampp\tmp\124831-641137.xlsx
[9] => C:\xampp\tmp\127680-642962.xls
[10] => C:\xampp\tmp\127689-642665.xls
[11] => C:\xampp\tmp\127692-642784.xls
[12] => C:\xampp\tmp\127700-643048.xls
[13] => C:\xampp\tmp\127708-643096.xls
[14] => C:\xampp\tmp\128771-642241.xls
[15] => C:\xampp\tmp\129082-647219.xls
[16] => C:\xampp\tmp\129629-647241.xls
[17] => C:\xampp\tmp\134488-647334.xls
[18] => C:\xampp\tmp\134500-646313.xls
[19] => C:\xampp\tmp\134508-644581.xls
[20] => C:\xampp\tmp\134511-646521.xls
[21] => C:\xampp\tmp\134512-646136.xls
[22] => C:\xampp\tmp\134561-650010.xls
)
是否有人知道为什么这不起作用,或者在读者之间切换的方式不同?
答案 0 :(得分:0)
你可以尝试:
SELECT result_event
FROM results
WHERE result_event IN (
SELECT MAX(event_id) FROM events
);
答案 1 :(得分:0)
列表中有一个损坏的文件,标识为xls文件但是是xlsx文件。我删除了文件,它现在完美运行了!