2015-10-15 40 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