将XSLX文件导入MySQL数据库

时间:2016-02-23 07:42:18

标签: php mysql excel

我之前已经问过类似的问题,但我找不到可以解决问题的答案。具体到我需要的东西:我需要读取带有.xslx扩展名的导入文件,并将其导入适当列中的MySQL表中。

以下是我已经尝试过的内容:

$file = $_FILES['file']['tmp_name'];
    $handle = fopen($file,"r");
    $name = $_FILES['file']['name'];

set_include_path(get_include_path() . PATH_SEPARATOR . 'Classes/');

        /** PHPExcel_IOFactory */
        include '../Classes/PHPExcel/IOFactory.php';


        $inputFileName = $name;  // File to read
        echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory to identify the format<br />';
        try {
            $objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
        } catch(Exception $e) {
            die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
        }


        echo '<hr />';
        echo "<pre>";
        $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
        print_r($sheetData);

        /* foreach($sheetData as $rec)
        {
            print_r($rec);
        }
         */
    }

我忘了提到我使用PHP/Excel库执行此任务,上面的代码正在解决此错误:

 Error loading file "jd.xlsx": Could not open jd.xlsx for reading! File does not exist

我需要存储读取数据的表格有3列,namesurnameemail。我要求我的用户在导入此文件时必须具有以下值的顺序:名称,姓氏,然后在其文档中发送电子邮件(就像数据库中的表结构一样)。所以,如果您有一些建议如何阅读此文件并将其导入数据库,我将非常感激。

1 个答案:

答案 0 :(得分:0)

所有评论都是完全正确的,我发现我犯了一个愚蠢的错误:

$inputFileName = $name;

而不是:

$inputFileName = $file;

由于$name = $_FILES['file']['name'];$file = $_FILES['file']['tmp_name'];

以下是我的脚本现在输出的内容:

Array
(
    [1] => Array
        (
            [A] => First Name
            [B] => Last Name
            [C] => Nationality
            [D] => Gender
        )

    [2] => Array
        (
            [A] => jaydeep
            [B] => namera
            [C] => india
            [D] => M
        )

    [3] => Array
        (
            [A] => harshad
            [B] => fefar
            [C] => india
            [D] => m
        )

    [4] => Array
        (
            [A] => jd
            [B] => patel
            [C] => ind
            [D] => m
        )

)

谢谢大家的见解。