web-dev-qa-db-ja.com

ExcelファイルをMySQLデータベースにインポートする方法

Microsoft ExcelファイルをMySQLデータベースにインポートする方法を説明できますか?

たとえば、Excelテーブルは次のようになります。

Country   |   Amount   |   Qty
----------------------------------
America   |   93       |   0.60

Greece    |   9377     |   0.80

Australia |   9375     |   0.80
74
Fero
  1. テキスト形式にエクスポートします。最も簡単なのはおそらくタブ区切りバージョンですが、CSVも同様に機能します。

  2. ロードデータ機能を使用します。 http://dev.mysql.com/doc/refman/5.1/en/load-data.html を参照してください

  3. タブで区切られたデータの良い例を提供するため、ページの半分を下に見てください。

    「\ t」で囲まれたフィールド「」で囲まれたフィールド

  4. データを確認してください。引用やエスケープに問題がある場合があり、ソースを調整し、コマンドをインポートする必要があります。または、SQLを介して後処理する方が簡単な場合があります。

44
ndp

sqlizer.io と呼ばれる、これを行うことができるシンプルなオンラインツールがあります。

Screenshot from sqlizer.com

XLSXファイルをアップロードし、シート名とセル範囲を入力すると、CREATE TABLEステートメントと一連のINSERTステートメントが生成され、すべてのデータがMySQLデータベースにインポートされます。

96
d4nt

以下は、スプレッドシートデータを追加のソフトウェアに依存しないMySQLデータベースにインポートする別の方法です。 Excelテーブルをsalesという名前のMySQLデータベースのmydatabaseテーブルにインポートするとします。

  1. 関連するセルを選択します。

    enter image description here

  2. Mr。Data Converter に貼り付けて、出力をMySQLとして選択します。

    enter image description here

  3. 生成された出力の要件に合わせて、テーブル名と列の定義を変更します。

CREATE TABLE sales (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  Country VARCHAR(255),
  Amount INT,
  Qty FLOAT
);
INSERT INTO sales
  (Country,Amount,Qty)
VALUES
  ('America',93,0.60),
  ('Greece',9377,0.80),
  ('Australia',9375,0.80);
  1. MySQL Workbench を使用している場合、またはコマンドラインから既にmysqlにログインしている場合、ステップ3から生成されたSQLステートメントを直接実行できます。それ以外の場合は、コードをテキストファイル(たとえば、import.sql)に貼り付け、Unixシェルからこのコマンドを実行します。

    mysql mydatabase < import.sql

    SQLファイルからインポートする他の方法は、 このStack Overflowの回答 にあります。

33
thdoan

実際には、ExcelファイルをMySQLデータベースにインポートする方法はいくつかありますが、複雑さと成功の度合いはさまざまです。

  1. Excel2MySQLまたはNavicatユーティリティ。完全な開示、私はExcel2MySQLの著者です。これらの2つのユーティリティは無料ではありませんが、最も簡単なオプションであり、制限が最も少なくなっています。また、ExcelデータをMySQLにインポートするのに役立つ追加機能も含まれています。たとえば、Excel2MySQLはテーブルを自動的に作成し、日付、時刻、浮動小数点数などのフィールドデータ型を自動的に最適化します。急いでいる場合や、データを処理する他のオプションを取得できない場合は、これらのユーティリティがニーズに合う場合があります。

    screenshot of Excel2MySQL

  2. LOAD DATA INFILE:この一般的なオプションはおそらく最も技術的であり、MySQLコマンドの実行についてある程度の理解が必要です。ロードする前にテーブルを手動で作成し、適切なサイズのVARCHARフィールドタイプを使用する必要があります。したがって、フィールドのデータ型は最適化されていません。 LOAD DATA INFILEには、 'max_allowed_pa​​cket'サイズを超える大きなファイルのインポートに問題があります。特殊文字や外国のユニコード文字をインポートする際の問題を回避するために、特別な注意が必要です。 test.csvという名前のcsvファイルをインポートするために使用した最近の例を次に示します。

    enter image description here

  3. phpMyAdmin:まずデータベースを選択してから、[インポート]タブを選択します。 phpMyAdminは自動的にテーブルを作成し、VARCHARフィールドのサイズを調整しますが、フィールドタイプを最適化しません。 phpMyAdminは、「max_allowed_pa​​cket」サイズを超える大きなファイルのインポートに問題があります。

    enter image description here

  4. MySQL for Excel:これはOracleの無料のExcelアドインです。このオプションはウィザードを使用し、大きなファイルではインポートが遅くバグが多いため少し面倒ですが、VARCHARデータの小さなファイルには適したオプションです。フィールドは最適化されていません。

    enter image description here

28
panofish

これらすべての設定があるかどうかはわかりませんが、私はPHPとMYSQLを使用しています。そこで、PHPクラスPHPExcelを使用します。これは、ほぼすべての形式(xls、xlsx、cvs、...)のファイルを受け取り、読み取りおよび/または挿入を可能にします。

そのため、Excelをphpexcelオブジェクトに読み込んでから、すべての行をループ処理します。必要に応じて、Excelファイルのデータをテーブルに挿入する簡単なSQL挿入コマンドを作成します。

フロントエンドでは少し作業ですが、既存のコード例の一部を微調整するだけです。ただし、ダイヤルインすると、インポートの変更は簡単かつ迅速になります。

2
user1441213

最良かつ最も簡単な方法は、Oracleの無料アプリである「MySQL for Excel」アプリを使用することです。このアプリは、データをmysqlにエクスポートおよびインポートするためのプラグインをExcelに追加しました。 こちら からダウンロードできます

1
Sadeq Shajary

もう1つの便利なツールは、MySQLフロントエンドの代替として、 Toad for MySQL です。悲しいことに、 Quest ではサポートされなくなりましたが、ほとんどのファイルタイプに対応するIMPORTおよびEXPORTウィザードを備えた、MySQL用の素晴らしいIDEです。

0
Fandango68

テキストファイルを使用してデータをインポートするときに、引用符とExcelで数値をフォーマットする方法に問題がありました。たとえば、私のExcel構成では、ドットの代わりにコンマを小数点として使用しました。

次に、MicrosoftAccess2010を使用して、MySqlテーブルをリンクテーブルとして開きます。そこで、ExcelからAccessにセルをコピーして貼り付けることができます。

これを行うには、まず MySql ODBCドライバー をインストールし、 ODBC接続 を作成します。次に、[外部データ]タブでアクセスし、[ODBCデータベース]ダイアログを開き、ODBC接続を使用して任意のテーブルにリンクします。

0
Christophe Weis

Excel 2007を正しいエンコーディング(UTF-8)でMySQLにインポートするためのステップバイステップの例については、このコメントを検索してください。

「2010年10月13日午前12時50分にマイク・レアードが投稿」

次のURLで:

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

0
Raúl Moreno

DocChow を使用できます。これは、ExcelをMySQLにインポートするための非常に直感的なGIUであり、ほとんどの一般的なプラットフォーム(Linuxを含む)で無料です。

特に、日付、日時のデータ型が心配な場合、 DocChow はデータ型を簡単に処理します。 1つのMySQLテーブルにインポートしたい複数のExcelスプレッドシートで作業している場合、DocChowは汚い作業を行います。

0
Seanj1000

ステップ1 CSVファイルを作成します

ステップ2 mysqlサーバーにログインします

     mysql -uroot -pyourpassword 

ステップ3 csvファイルをロードする

     load data local infile '//home/my-sys/my-Excel.csv' into table my_tables fields terminated by ',' enclosed by '"' (Country, Amount,Qty);
0
Syed Shibli