繁体   English   中英

在PHP中导入Excel文件

[英]importing excel file in php

朋友,我已经知道如何通过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';
    }
}

文件上传是文件上传。 不管是.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文件,而不是完全不同的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM