2015-10-15 69 views
-1

如何使用PHP將大型xls或csv數據集轉換爲mysql數據,最好使用Silverstripe API?我可以直接做,或者我需要首先轉換爲文本?如何把xls轉換成mysql?

+1

csv-php內置函數:http://nz2.php.net/manual/en/function.fgetcsv.php等,對於xls有[PHPexcel](https://phpexcel.codeplex.com/ ) - mysql可以導入csv [直接](https://dev.mysql.com/doc/refman/5.1/en/load-data.html) – 2015-10-15 02:47:56

回答

5

SilverStripe有多種方法將CSV文件導入到您的數據模型中。

的文檔是值得閱讀本節: https://docs.silverstripe.org/en/3.1/developer_guides/integration/csv_import/

的最快最簡單的方法就是用ModelAdmin界面來管理您的自定義DataObject,並使用內置的CSV進口商。

class PlayerAdmin extends ModelAdmin { 
    private static $managed_models = array(
     'Player' 
    ); 
    private static $url_segment = 'players'; 
} 

當你去到球員ModelAdmin你會看到左邊導入CSV形式。確保CSV文件中的列標題與數據對象的變量名稱對齊。

對於更復雜的導入方法,請閱讀有關允許您這樣做的替代方法的文檔。

1
Example #1 Read and print the entire contents of a CSV file 
<?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); 
} 
?> 
+1

是的手冊,非常好 – 2015-10-15 03:08:37