在php中导入excel文件

时间:2014-08-20 14:52:29

标签: php excel

朋友我已经知道如何通过php上传.csv文件格式。 但现在我需要知道如何在PHP中上传.xls文件。 我试过这个代码,但它无法正常工作..任何人都可以给我一个建议??

if ($_POST['frmSubmit']) {
    $file = $_FILES['frmUpload']['name'];   

    if ($file) {
        $data = new Spreadsheet_Excel_Reader();
        $data->read('name'.$file);

        for ($k = 1; $k < count($strDatas->sheets[0]['numRows']); $k++) {       
            $name = $data->sheets[0]['cells'][$k][1];
            $code = $data->sheets[0]['cells'][$k][2];
            $email = $data->sheets[0]['cells'][$k][3];
            $designation = $data->sheets[0]['cells'][$k][4];
            $number = $data->sheets[0]['cells'][$k][5];
            $salary = $data->sheets[0]['cells'][$k][6]; 
            $age = $data->sheets[0]['cells'][$k][7];    

            doInsertEmployeeDetails($name, $code, $email, $designation, $number, $salary, $age);
        }   
    } else {
        $strMessage = 'Please upload a valid file.';                                                                    
        $strClass = 'Error';
    }
}

1 个答案:

答案 0 :(得分:0)

文件上传是文件上传。无论是.txt,.jpg,.exe还是.foobarbaz都没关系。 PHP并不关心。

你做错了是为这个文件制作一个完全虚假的名字,并且不知何故希望PHP能够神奇地修复它。

您需要先确认实际发生了上传并且成功

if ($_FILES['frmUpload']['error'] !== UPLOAD_ERR_OK) {
   die("File upload failed with error code #" . $_FILES['frmUpload']['error']);
}

然后只使用PHP分配的标准临时文件名,而不是客户端上存在的完全含义的文件名:

$data->read($_FILES['frmUpload']['tmp_name']);

当然,你应该检查一下这个上传是否真的是一个excel文件,而不是完全不同的东西。