在PHP中从Excel导入数据

时间:2010-01-14 19:32:03

标签: php mysql import-from-excel

我想使用PHP从excel文件导入数据,然后如果可能,将其保存到MySQL数据库。

5 个答案:

答案 0 :(得分:19)

从Excel文件导入(XLS)比从CSV文件中导入更难。通常我使用Excel将我的XLS保存为CSV,然后使用PHP处理此CSV ...

查看PHP函数fgetcsv: http://ca.php.net/manual/en/function.fgetcsv.php

<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}
?> 

如果你仍然希望直接从PHP加载XLS,那么可能(但是多么可靠)......快速搜索http://sourceforge.net/projects/phpexcelreader/会产生帮助。

答案 1 :(得分:8)

很可能。您可以将Excel文件另存为CSV文件,并使用fgetcsv()将该文件读入PHP。 fgetcsv()会将您的数据解析为一个数组,然后您可以创建SQL查询以放入数据库。

如果您所做的只是将其放入数据库中,您可以完全避免使用PHP脚本,而只需在CSV文件中使用MySQL的LOAD DATA INFILE语法:

LOAD DATA LOCAL INFILE '/importfile.csv'
INTO TABLE test_table
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(field1, filed2, field3);

答案 2 :(得分:0)

最好的办法是从Excel导出为CSV(逗号分隔值)文件。这些文件易于解析和加载。如果您直接从XLS文件中读取,我不知道该怎么做。您可能希望查看是否存在可以读取Excel数据文件的PHP库。

答案 3 :(得分:0)

Here是一个直接读/写Excel电子表格的教程(无需导出为CSV)。必要的软件包可以从SourceForge和PEAR获得(参见文章)。

答案 4 :(得分:-1)

<?
 i$db = mysql_connect(“localhost”, “root”, “”) or die(“Could not connect.”);

if(!$db)

die(“no db”);

if(!mysql_select_db(“test”,$db))

die(“No database selected.”);

if(isset($_POST['submit']))

{

$filename=$_POST['filename'];

$handle = fopen(“$filename”, “r”);

while (($data = fgetcsv($handle, 1000, “,”)) !== FALSE)

{

$import=”INSERT into sample(name,email) values(‘$data[0]‘,’$data[1]‘)”;

mysql_query($import) or die(mysql_error());

}

fclose($handle);

print “Import done”;

}

else

{

print “<form action=’import.php’ method=’post’>”;

print “Type file name to import:<br>”;

print “<input type=’text’ name=’filename’ size=’20′><br>”;

print “<input type=’submit’ name=’submit’ value=’submit’></form>”;

}
 ?>

Source