2010-01-14 161 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