Microsoft ExcelファイルをMySQLデータベースにインポートする方法を説明できますか?
たとえば、Excelテーブルは次のようになります。
Country | Amount | Qty
----------------------------------
America | 93 | 0.60
Greece | 9377 | 0.80
Australia | 9375 | 0.80
テキスト形式にエクスポートします。最も簡単なのはおそらくタブ区切りバージョンですが、CSVも同様に機能します。
ロードデータ機能を使用します。 http://dev.mysql.com/doc/refman/5.1/en/load-data.html を参照してください
タブで区切られたデータの良い例を提供するため、ページの半分を下に見てください。
「\ t」で囲まれたフィールド「」で囲まれたフィールド
データを確認してください。引用やエスケープに問題がある場合があり、ソースを調整し、コマンドをインポートする必要があります。または、SQLを介して後処理する方が簡単な場合があります。
sqlizer.io と呼ばれる、これを行うことができるシンプルなオンラインツールがあります。
XLSXファイルをアップロードし、シート名とセル範囲を入力すると、CREATE TABLEステートメントと一連のINSERTステートメントが生成され、すべてのデータがMySQLデータベースにインポートされます。
以下は、スプレッドシートデータを追加のソフトウェアに依存しないMySQLデータベースにインポートする別の方法です。 Excelテーブルをsales
という名前のMySQLデータベースのmydatabase
テーブルにインポートするとします。
関連するセルを選択します。
Mr。Data Converter に貼り付けて、出力をMySQLとして選択します。
生成された出力の要件に合わせて、テーブル名と列の定義を変更します。
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);
MySQL Workbench を使用している場合、またはコマンドラインから既にmysql
にログインしている場合、ステップ3から生成されたSQLステートメントを直接実行できます。それ以外の場合は、コードをテキストファイル(たとえば、import.sql
)に貼り付け、Unixシェルからこのコマンドを実行します。
mysql mydatabase < import.sql
SQLファイルからインポートする他の方法は、 このStack Overflowの回答 にあります。
実際には、ExcelファイルをMySQLデータベースにインポートする方法はいくつかありますが、複雑さと成功の度合いはさまざまです。
Excel2MySQLまたはNavicatユーティリティ。完全な開示、私はExcel2MySQLの著者です。これらの2つのユーティリティは無料ではありませんが、最も簡単なオプションであり、制限が最も少なくなっています。また、ExcelデータをMySQLにインポートするのに役立つ追加機能も含まれています。たとえば、Excel2MySQLはテーブルを自動的に作成し、日付、時刻、浮動小数点数などのフィールドデータ型を自動的に最適化します。急いでいる場合や、データを処理する他のオプションを取得できない場合は、これらのユーティリティがニーズに合う場合があります。
LOAD DATA INFILE:この一般的なオプションはおそらく最も技術的であり、MySQLコマンドの実行についてある程度の理解が必要です。ロードする前にテーブルを手動で作成し、適切なサイズのVARCHARフィールドタイプを使用する必要があります。したがって、フィールドのデータ型は最適化されていません。 LOAD DATA INFILEには、 'max_allowed_packet'サイズを超える大きなファイルのインポートに問題があります。特殊文字や外国のユニコード文字をインポートする際の問題を回避するために、特別な注意が必要です。 test.csvという名前のcsvファイルをインポートするために使用した最近の例を次に示します。
phpMyAdmin:まずデータベースを選択してから、[インポート]タブを選択します。 phpMyAdminは自動的にテーブルを作成し、VARCHARフィールドのサイズを調整しますが、フィールドタイプを最適化しません。 phpMyAdminは、「max_allowed_packet」サイズを超える大きなファイルのインポートに問題があります。
MySQL for Excel:これはOracleの無料のExcelアドインです。このオプションはウィザードを使用し、大きなファイルではインポートが遅くバグが多いため少し面倒ですが、VARCHARデータの小さなファイルには適したオプションです。フィールドは最適化されていません。
これらすべての設定があるかどうかはわかりませんが、私はPHPとMYSQLを使用しています。そこで、PHPクラスPHPExcelを使用します。これは、ほぼすべての形式(xls、xlsx、cvs、...)のファイルを受け取り、読み取りおよび/または挿入を可能にします。
そのため、Excelをphpexcelオブジェクトに読み込んでから、すべての行をループ処理します。必要に応じて、Excelファイルのデータをテーブルに挿入する簡単なSQL挿入コマンドを作成します。
フロントエンドでは少し作業ですが、既存のコード例の一部を微調整するだけです。ただし、ダイヤルインすると、インポートの変更は簡単かつ迅速になります。
最良かつ最も簡単な方法は、Oracleの無料アプリである「MySQL for Excel」アプリを使用することです。このアプリは、データをmysqlにエクスポートおよびインポートするためのプラグインをExcelに追加しました。 こちら からダウンロードできます
もう1つの便利なツールは、MySQLフロントエンドの代替として、 Toad for MySQL です。悲しいことに、 Quest ではサポートされなくなりましたが、ほとんどのファイルタイプに対応するIMPORTおよびEXPORTウィザードを備えた、MySQL用の素晴らしいIDEです。
テキストファイルを使用してデータをインポートするときに、引用符とExcelで数値をフォーマットする方法に問題がありました。たとえば、私のExcel構成では、ドットの代わりにコンマを小数点として使用しました。
次に、MicrosoftAccess2010を使用して、MySqlテーブルをリンクテーブルとして開きます。そこで、ExcelからAccessにセルをコピーして貼り付けることができます。
これを行うには、まず MySql ODBCドライバー をインストールし、 ODBC接続 を作成します。次に、[外部データ]タブでアクセスし、[ODBCデータベース]ダイアログを開き、ODBC接続を使用して任意のテーブルにリンクします。
Excel 2007を正しいエンコーディング(UTF-8)でMySQLにインポートするためのステップバイステップの例については、このコメントを検索してください。
「2010年10月13日午前12時50分にマイク・レアードが投稿」
次のURLで:
ステップ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);