0

クライアントからXSLXスプレッドシートが提供されており、一部の列で一重引用符または二重引用符、あるいはその両方を使用できます。LibreOfficeで開いて、CSVとして保存しています。次に、phpMyAdminにインポートしようとしますが、エスケープに使用することを示すかどうかに応じて、インポートが一重引用符または二重引用符のいずれかで行につまずくたびに行われます。

XLSXをCSVとして保存する場合、エンコードにはUTF-8(デフォルトではWindows-1252)を選択し、列区切り文字にはコンマを選択し、[セルの内容を表示どおりに保存]をオンのままにします。「テキスト区切り文字」と「すべてのテキストセルを引用」については、両方のオプションをそれぞれ試しました(区切り文字の場合は一重引用符と二重引用符、引用符の場合はオン/オフ)。

次に、phpMyAdminで、インポートの場合はUTF-8を選択したままにし、列を二重引用符(または一重引用符、LibreOfficeで選択したものと一致)で囲み、エスケープされた列の場合は円記号と二重引用符と一重引用符を試しました。

すべての場合で、「行nのCSV入力の列数が無効です」というエラーが表示され続けます。行番号は、列のエスケープ/区切り文字(一重引用符または二重引用符)に選択したものによって異なります。区切り文字として二重引用符を選択した場合、エスケープされていない一重引用符を含む列を含む最初の行でエラーが発生します。一重引用符の区切り文字の場合はその逆になります。

このスプレッドシートをセルに一重引用符と二重引用符の両方でインポートするにはどうすればよいですか?

4

1 に答える 1

0

さて、さらに調査と「いじり回し」た後、私はそれを理解しました。

私の状況では、インポートのためにLOAD DATAを使用してCSVを選択し、「で囲まれた列」に二重引用符を使用し、エスケープされた列をクリアしました。

LOAD DATA は明らかに phpMyAdmin に、MySQL がファイルを直接処理できるようにするように指示します。「通常の」CSVインポート選択で区切り文字などを指定できる場合、これが問題に影響する理由はわかりませんが、うまくいったようです!

これが他の誰かを助けることを願っています。

于 2012-04-09T15:55:11.603 に答える