2010-01-14 162 views

回答

18

从Excel文件(XLS)导入比从CSV文件中插入文本要困难得多。通常我救我的XLS到CSV用Excel然后在此CSV用PHP工作...

看看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); 
} 
?> 

如果你仍然想加载XLS直接从PHP它的可能(但如何可靠)...快速搜索导致http://sourceforge.net/projects/phpexcelreader/这可能会有所帮助。

+0

在另一方面,对于Excel 2007,http://phpexcel.codeplex.com/是非常好的。 – AlexV 2010-05-01 17:20:54

0

最好的办法是从Excel导出为CSV(逗号分隔值)文件。这些文件很容易解析和加载。如果你直接从XLS文件中读取,我不知道该怎么做。您可能需要查看是否有能够读取Excel数据文件的PHP的libarary。

8

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

如果你正在做的是把它变成一个数据库,你也许可以完全绕过了一个PHP脚本的需要,只使用MySQL的LOAD DATA INFILE语法上的CSV文件,而不是:

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

Here是直接阅读/写入Excel电子表格的教程(无需导出为CSV)。 SourceForge和PEAR提供了必要的软件包(参见文章)。

-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