Импортировать файл excel на сервер sql с помощью PHPExcel [закрыто]

Мне нужно импортировать файл excel в таблицу sql-сервера с помощью PHPExcel, я google, но я не могу найти правильное и быстрое решение, так что любой орган может помочь мне с некоторыми кодами или примерами, с наилучшими пожеланиями

php,sql-server,phpexcel,phpexcel-1.8.0,

-1

Ответов: 2


1

PHPExcel не рекомендуется.
PhpSpreadsheet - еще одна альтернатива работе с основным PHP . Если вы работаете с laravel, возможно, Laravel-Excel - лучшая альтернатива.

Quique start Laravel-Excel

    use Excel;
    use File;
    class Test extends Controller{

        public function importToDB(){

            $fileinfo = 'path/test.xls';//your file path
            if (File::exists(fileinfo)) {
                Excel::selectSheets('sheetName')->load(fileinfo, function ($results) {//Excel worksheet name
                    $columOne = $results->takeColumns(1)->toArray();//Array data
                    $columTwo = $results->takeColumns(2)->toArray();
                    foreach($columOne as $key => $name){//Single item
                            // insert into database 
                    }

                }, false);
            }
        }

0

Я использую этот код, но он вызывает ошибку: SQLSTATE: 42000 code: 156 сообщение: [Microsoft] [драйвер ODBC 13 для SQL Server] [SQL Server] Неверный синтаксис рядом с ключевым словом «файл».

        $serverName = "HREXPRESS";
        $connectionInfo = array( "Database"=>"hrexpress"/* "UID"=>"username", 
        "PWD"=>"password"*/ );
        $conn = sqlsrv_connect( $serverName, $connectionInfo );
        if( $conn === false ) {
            echo "Could not connect.
";
            die( print_r( sqlsrv_errors(), true));
        }
        include "$_SERVER[DOCUMENT_ROOT]/Classes/PHPExcel.php";
        include "$_SERVER[DOCUMENT_ROOT]/Classes/PHPExcel/IOFactory.php";
        //load excel file using PHPExcel's IOfactory
        $excel = PHPExcel_IOFactory::load('file2.xls');
        //set active sheet to first sheet
        $excel->setActiveSheetIndex(0);
        echo "<table>";
        echo "
                <tr>
                    <th>ID</th>
                    <th>First Name</th>
                    <th>Last Name</th>
                    <th>age</th>
                </tr>
                ";
        //first row of data series
        $i = 1 ;
        //loop until the end of data series(cedll contains empty string)
        while($excel->getActiveSheet()->getcell('A'.$i)->getValue() != ""){
            //get cells value
            $id     = $excel->getactiveSheet()->getCell('A'.$i)->getValue();
            $first  = $excel->getactiveSheet()->getCell('B'.$i)->getValue();
            $last = $excel->getactiveSheet()->getCell('C'.$i)->getValue();
            $age    = $excel->getactiveSheet()->getCell('D'.$i)->getValue();
                $q = "INSERT INTO dbo.file (id,first,last,age) VALUES ('$id','$first','$last','$age')";
                $d = sqlsrv_query($conn,$q);
            //echo
            echo "
                <tr>
                    <td>".$id."</td>
                    <td>".$first."</td>
                    <td>".$last."</td>
                    <td>".$age."</td>
                </tr>
            ";
            //and DON'T FORGET to increment the row pointer ($i)
            $i++;
        }
        echo "</table>";
        //echo error
        if( $d === false ) {
                if( ($errors = sqlsrv_errors() ) != null) {
                    foreach( $errors as $error ) {
                        echo "</br>SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
                        echo "code: ".$error[ 'code']."<br />";
                        echo "message: ".$error[ 'message']."<br />";
                    }
                }
            }
PHP, SQL-сервер, PHPExcel, PHPExcel-1.8.0,
Похожие вопросы