0

私はこれの正反対が欲しいです。

電子メールでいっぱいの.xlsファイルをデータベース列にロードしたいと思います。

これを行う最も簡単な方法は何ですか?

4

3 に答える 3

1
  1. ExcelスプレッドシートをCSV形式にエクスポートします
  2. MySQLのLOADDATAINFILE構文を使用して、手順1で作成したCSVファイルを使用します。

    LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
      FIELDS TERMINATED BY ',' ENCLOSED BY '"'
      LINES TERMINATED BY '\r\n'
      IGNORE 1 LINES;
    

ファイルはMySQLインスタンスにローカルでアクセスできる必要があるため、サーバーに物理的にアクセスできない場合はファイルをアップロードする必要があります。

于 2010-09-25T20:37:53.993 に答える
1

ほとんどのExcelファイル形式(BIFF5、BIFF8、spreadsheetML)を読み取ることができるPHPExcelを使用できます。残念ながら、プロジェクトのドキュメントはWordファイルであるため、特定のセクションに直接リンクすることはできませんが、このファイルのセクション6.4.1/ページ37です。

于 2010-09-25T21:43:21.380 に答える
1

ポニーが言ったように、最初に「名前を付けて保存> CSV」してから、アップロードして何でもする必要があります。ただし、多くの場合、アクセス許可ではそのSQLステートメントは許可されません。私の個人的なお気に入りはcsv2sql.comを使用することです。これは、手間がかかり、SQLを実行するだけでよいためです。ただし、より安全なfgetcsvを使用して、スクリプトに実装できるものを使用することもできます。

fgetcsvを使用すると、電子メールアドレスがリストされた1列のファイルがあると仮定して次のようなことができます。

$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++) {
            if ($c==0){
                 //This is the first column
                 //Just run a generic MySQL insert command here (see below for link for more info on this)
            }
        }
    }
    fclose($handle);
}

PHP MySQL Insertのチュートリアル:W3Schoolsで。それはあなたがこの努力を続けるようになるはずです。

于 2010-09-25T21:55:17.427 に答える