2012-03-23 25 views
1

クライアントが提供するかなりのXLSファイルが830個のタブ/シートで提供されています。CSVまたはタブ区切りファイルをMySQLのマルチテーブルデータベースにマップする方法

PHPMyAdmin(MySQLは明らかに)の情報を格納するためのマルチテーブルデータベースを設計しました。これらのシートのうち約5枚が手作業でデータを設計データベースに収めています。

このXLSドキュメントをフォーマットしてデータベースの適切な場所にマップするのに役立つソフトウェアやツールがありますか?

答えて

2

to this thread you can import a csv file exported from excelとphp。あなたがここにPHPを使用しているように見えるよう@noelthefish

を引用

が、これは何が必要の非常に基本的であるPHP

array fgetcsv (resource $handle [, int $length [, string $delimiter [, string $enclosure [, string $escape ]]]]) 

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

に組み込まれている機能です。あなたはもちろん、whileループの中で にデータベース更新部分を入れます。 ECHO ステートメントも同様に取り出してください。デバッグしない限り、基本的には の小さなコードで、この小さなコードが必要な作業を行います。あなたはより多くの情報が必要 場合uk.php.net

2

をチェックアウトするにはAccessにスプレッドシートからデータをインポートし、あなたが好きなテーブル/列にフィールドをマップすることが可能です。また、ODBCコネクタを使用してMySQL DBへのアクセスを接続することもできます(using Access as a front-end to MySQL)。

また、toomanyairmilesが示唆しているように、単にあなたのMySQL DBが必要とするフォーマットにCSVデータをマッサージするためのPHPコードを書くことができます。これは、異種のソースから販売/ロイヤリティ追跡システムに販売データをインポートする必要があるときに私が過去に行ったことです。頻繁にインポートする必要がある場合は、個々のシートを1つのディレクトリにCSV形式でエクスポートするシステムを自動化することをお勧めします(もっと便利な場合は、それらをまとめてzipファイルをPHPアプリケーション。

はMySQLに一括インポートをやっている場合、あなたは、一般的にthe fastest way to import data into MySQL —それはあなたがデータをマッサージした後、ディスクに新しいCSVファイルを書き込むために、実際に高速です地点にある、LOAD DATA INFILEを使用して検討する必要がありますINSERTバルクを直接実行するのではなく、LOAD DATA INFILEを使用してください。私のイントラネットでこれを行うと、実際に挿入時間が3秒以上に短縮されました(これはすでに3分の間に改善されており、何千という個別の操作を行っていました)。

関連する問題