使用PHPExcel阅读电子表格
发布时间:2020-12-13 13:33:30 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试上传电子表格并使用 PHPExcel将其读入MySQL数据库. 对于.xlsx文件,它工作正常,但每当我尝试上传.ods文件时,它都会抛出错误:PHP致命错误:在PHPExcel_1.7.9 / Classes / PHPExcel / Reader /中的非对象上调用成员函数getNamespaces()第341行的OOCa
我正在尝试上传电子表格并使用
PHPExcel将其读入MySQL数据库.
对于.xlsx文件,它工作正常,但每当我尝试上传.ods文件时,它都会抛出错误:PHP致命错误:在PHPExcel_1.7.9 / Classes / PHPExcel / Reader /中的非对象上调用成员函数getNamespaces()第341行的OOCalc.php 出了什么问题? HTML表格: <form method="post" enctype="multipart/form-data"> Upload File: <input type="file" name="spreadsheet"/> <input type="submit" name="submit" value="Submit" /> </form> PHP(在同一个文件中): //Check valid spreadsheet has been uploaded if(isset($_FILES['spreadsheet'])){ if($_FILES['spreadsheet']['name']){ if(!$_FILES['spreadsheet']['error']) { $inputFile = $_FILES['spreadsheet']['name']; $extension = strtoupper(pathinfo($inputFile,PATHINFO_EXTENSION)); if($extension == 'XLSX' || $extension == 'ODS'){ //Read spreadsheeet workbook try { $inputFile = $_FILES['spreadsheet']['tmp_name']; $inputFileType = PHPExcel_IOFactory::identify($inputFile); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load($inputFile); } catch(Exception $e) { die($e->getMessage()); } //Get worksheet dimensions $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); //Loop through each row of the worksheet in turn for ($row = 1; $row <= $highestRow; $row++){ // Read a row of data into an array $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,NULL,TRUE,FALSE); //Insert into database } } else{ echo "Please upload an XLSX or ODS file"; } } else{ echo $_FILES['spreadsheet']['error']; } } } ?>
将文件上载到Web服务器时,该文件将以随机名称保存在系统的临时文件夹中.
您尝试做的是给出您上传的文件的实际名称,但是因为该文件是在tmp文件夹中使用随机名称创建的. 另请注意,在名称中您只有上传的文件的名称而不是路径, 请参阅以下您将获得的文件上载示例. array( [UploadFieldName]=>array( [name] => MyFile.jpg [type] => image/jpeg [tmp_name] => /tmp/php/php6hst32 [error] => UPLOAD_ERR_OK [size] => 98174 ) ) 将代码更改为此代码 //Check valid spreadsheet has been uploaded if(isset($_FILES['spreadsheet'])){ if($_FILES['spreadsheet']['tmp_name']){ if(!$_FILES['spreadsheet']['error']) { $inputFile = $_FILES['spreadsheet']['tmp_name']; $extension = strtoupper(pathinfo($inputFile,PATHINFO_EXTENSION)); if($extension == 'XLSX' || $extension == 'ODS'){ //Read spreadsheeet workbook try { $inputFileType = PHPExcel_IOFactory::identify($inputFile); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load($inputFile); } catch(Exception $e) { die($e->getMessage()); } //Get worksheet dimensions $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); //Loop through each row of the worksheet in turn for ($row = 1; $row <= $highestRow; $row++){ // Read a row of data into an array $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,FALSE); //Insert into database } } else{ echo "Please upload an XLSX or ODS file"; } } else{ echo $_FILES['spreadsheet']['error']; } } } ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |