2

Excel .csv ファイルからデータを取得し、さまざまなレベルの書式設定、移動、およびマッピングを適用するアプリを構築しています。データのクリーニングに関する 1 つの問題を除いて、ほとんどすべてが把握されています。以下は、Excel からのデータの例です。

  1. グレート パフォーマンス、グレート パフォーマンス、57744 ラウンド レイク RD、ニューヨーク、NY
  2. 「GUASTAVINO'S, INC」、GUASTAVINO'S、8250 WESTHEIMER RD、ニューヨーク、NY
  3. CLARKES GROUP LLC、HUGO'S FROG BAR、915 3RD AVE、シカゴ、IL
  4. TRIOMPHE RESTAURANT CORP,"GEORGE'S,JEAN", 1309 E PUTNAM AVE, NEW YORK, NY

行 3 の 2 と 4 のため、単純に destroy() を実行できません。これらの行の両方に「文字列、文字列」があり、データのエクスポートを制御できず、インポート時にクリーニングするだけです。

優雅ではない多くのオプションを試しましたが、処理時間がかかります。誰でもエレガントなソリューションを考えることができますか?

MySQL IMPORT 機能を使用できません。残念ながら PHP 経由で処理する必要があります。

4

2 に答える 2

7

SQL ステートメントを実行することもできます。

LOAD DATA INFILE 'mydata.csv'
  FIELDS TERMINATED BY ','
  OPTIONALLY ENCLOSED BY '"';

PHP を使っていると聞きましたが、PHP から上記のステートメントを実行できます。それとも、入力が CSV ファイルではなく、CSV を読み取った結果のストリームであるということですか? 残念ながら、LOAD DATA INFILE にはファイル名が必要で、標準入力を使用できません。

于 2008-12-21T22:52:38.317 に答える
4

あなたの質問に回答がありました。しかし、使用するためにファイルを PHP に読み込みたい場合は、 fgetcsvを使用するだけで済みます。

于 2008-12-22T01:07:42.990 に答える