如何将数据从XLS文件导入MySQL?

时间:2011-04-13 04:37:07

标签: php mysql excel

因为我正在尝试将MS Excel数据导入MySQL数据库 使用以下代码:

<?php  
    $db_username="root"; //database user name
    $db_password="";//database password
    $db_database="hr_mysql"; //database name
    $db_host="localhost";


    mysql_connect($db_host,$db_username,$db_password);
    @mysql_select_db($db_database) or die( "Unable to connect to database.");

    $handle = fopen("UploadIt.xls", "r"); //test.xls excel file name
    if ($handle)
    {
        $array = explode("\n", fread($handle, filesize("UploadIt.xls")));
    }

    $total_array = count($array);
    $i = 0;
    $Leave_Type_Id1="LTY001";
    $Leave_Type_Id2="LTY002";

    while($i < $total_array)
    {
    $data = explode(",", $array[$i]);    
    //$sql = "insert into test values ('$data[0]','$data[1]')";
    $sql = "update `hs_hr_employee_leave_quota` set `no_of_days_allotted`= {$data[0]} WHERE `employee_id`= {$data[0]} and `leave_type_id`= '{$Leave_Type_Id1}'";        
    $result = mysql_query($sql);
    $sql = "update `hs_hr_employee_leave_quota` set `no_of_days_allotted`= {$data[2]} WHERE `employee_id`= {$data[0]} and `leave_type_id`= '{$Leave_Type_Id2}'";        
    $result = mysql_query($sql);
    $i++;
    }
    if($result==false)
            echo "Not succed";  
    else 
    {
        echo "completed";   
    }

?>

我的.xls表是:

但我收到错误说

htdocs \ Verify \ XL_To_DBTable.php第28行 - 未定义的偏移量:2

| 1 | 2 | 5 |

| 2 | 3 | 5 |

| 3 | 3 | 4 |

| 4 | 3 | 9 |

| 5 | 4 | 1 |

(假设上面只有xls表格)

1 个答案:

答案 0 :(得分:0)

您需要将文件正确读取为MS Excel文件。您将其视为ascii文本文件。您可以手动将文件转储为CSV格式,并使用与您已有的逻辑类似的逻辑对其进行解析。或者您可以使用:

PHP Excel File Reader

并使用它来解析文件,获取内容,然后创建要在mysql中执行的相应查询。