web-dev-qa-db-ja.com

どのようにExcelにCSVファイルのすべての列を引用させるのですか?

Excelは特定のフィールドの周りにのみ引用符を置きますが、Excelにすべての列の周りに引用符を付けてCSVファイルを保存させるにはどうすればよいですか。

84

LibreOfficeまたはOpenOfficeでXLSファイルを開き、[名前を付けて保存]を選択して[テキストCSV]を選択すると、引用符も区切り文字として含まれるCSVファイルが生成されます。例: "Smith"、 "Pete"、 "Canada"、 "Jones"、 "Mary"、 "England"

[すべてのテキストセルを引用する]チェックボックスをオンにするだけです。 Export to CSV with LibreOffice

数値フィールドも引用するには、保存する前にセル範囲を強調表示してセルのフォーマットを「テキスト」に変更します。

44
Pete

このページには、馬の口から直接出る解決策もあります。

http://support.Microsoft.com/kb/291296/en-us

リンクが劣化した場合、検索するトピックは次のとおりです。

「Excelでカンマと引用符の両方の区切り文字を含むテキストファイルをエクスポートする手順」または「Q291296」

tl; dr:マクロを使う

42
sahmeepee

私はこの簡単な解決策を見つけました:

  1. 引用符を追加するセルを強調表示します。
  2. 右クリックして、セルの書式設定→タブ:数値→カテゴリ:カスタムの順に選択します。
  3. 以下をTypeフィールドに貼り付けます。"''"@"''"(詳細は下記を参照)
  4. 「OK」をクリック

貼り付ける文字列は"''"@"''"です。これは、二重引用符、単一引用符、単一引用符、二重引用符、@記号、二重引用符、一重引用符、一重引用符、二重引用符です。

ここで見つけた情報 からExcel 2010用に編集しました

17
Michael

Powershellは正しくダンプするようです。こんな感じ

あなたがpowershellを知らないのであれば、Windowsマシンでpowershell.exeを検索してください。

import-csv C:\Temp\Myfile.csv | export-csv C:\Temp\Myfile_New.csv -NoTypeInformation -Encoding UTF8

誰かに役立つことを願っています。

8
ssaviers

これが私にとって最も簡単な方法です。スプレッドシートをAccess 2010にインポートし、そこから区切りテキストファイルとしてエクスポートしました。私の欄の周りに引用符を付けてください。ステップダウンしたので、42k行に1分もかかりません。

4
user326114

引用符を追加するセルを強調表示します。 [フォーマット] - > [セル] - > [カスタム]の順に選択し、[種類]フィールドに次の文字列を貼り付けます。\ "@ \" [OK]をクリックします。

投稿者: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-Excel-automatically/

2
Steve Coleman
  1. 引用符を追加するセルを強調表示します。
  2. 右クリックして次の場所に移動します。フォームセル→タブ:番号→カテゴリ:カスタム
  3. 以下をTypeフィールドに貼り付けます。 "''" @ ""(下記の詳細を参照)
  4. 「OK」をクリック
  5. メモ帳(または同等のもの)で.csvファイルを開く
  6. すべての ''(単一引用符の繰り返し)を "(二重引用符)で置き換えます。
  7. すべて交換してください。
  8. 改訂した.csvファイルを保存する
2
eric

私は、VBAマクロを含まないが、Notepad ++または同様のマクロベースのテキストエディタを必要とする別の方法を見つけました。

ファイルをタブ区切りテキストとしてエクスポートし、エクスポートしたファイルをNotepad ++で開きます。 'tab'文字のすべてのインスタンスをテキスト "、"(つまり、文字通り二重引用符、コンマ、二重引用符)で置き換えてから、別のマクロを使用してテキストの各行に二重引用符を付けます。

ちょっとハッキーだけど、VBAマクロを動かすよりも早く見つけた。

2
Blueacid

Notepad ++を使用して各行の先頭に引用符を追加する場合は、エクスポートしたcsvファイルを開き、カーソルを1行1列目に置き、メニューをクリックします。Edit/Column Editor ... 、フィールド 'に挿入するテキスト'に、を入力します。 "、各行の先頭に引用符が表示されます。その後、正規表現を使用してすべてのタブを検索/置換できます。

1
Michael Zhang

2014年8月21日のMichaelの答え は本当に役に立ちます。しかし、私は追加のステップを1、2実行しなければなりませんでした:

  1. メモ帳(または同等のもの)で.csvファイルを開く
  2. すべての ''(単一引用符の繰り返し)を "(二重引用符)で置き換えます。
  3. すべて交換してください。 (ドイツ語版のExcelでは区切り文字として使用)で、
  4. 改訂した.csvファイルを保存する
0
user366932

あなたがMS Access(私は2007年のバージョンを持っています)を持っているならばもう一つの方法はそれからテキストファイルとしてそれをエクスポートします。次に、.txtを.csvに変更します。すべての数値フィールドに二重引用符が使用されないように注意してください。そのため、Accessで数値フィールドを二重引用符で囲む必要がある場合は、フィールドを数値フィールドからテキストフィールドに変更します。

0
Dean

データのコピー、数式、エクスポート、ファイルのプロパティの変更、メモ帳での置き換え、エクスポートされたファイルの保存、およびクリーンアップを使用して、カンマ区切りおよび引用符付き文字列のエクスポートをExcel 2016およびメモ帳でのみ実行できます。それぞれが簡単なステップです。詳細に:

  1. エクスポートする列を新しい中間シートにコピーして元のバックアップとして保存し、新しいシートを後で削除してスプレッドシートをそのままにします。

  2. それ以外の場合は発生しない文字を入れて、列の文字列の両端に '#'または ';-)'と書いて、=concat("#",trim(A1),"#")という式を付けてAと言い、別の列のすべての行にその式を入れます。

    • 隣接する列は同時に実行できますが、文字列として読み込まれないようにするために数値を引用符で囲まないでください。
    • このトリムは、不快なエクスポート動作を引き起こす可能性のある後続スペースを回避します。
    • 文字列はインポートを混乱させる可能性がある '"'を含んではいけません。
  3. 式を持ち込まないように '123'メソッドを使用して、A ...の上に新しい列をコピーします。

  4. シートをCSVファイルとしてエクスポートし、数字を含むフィールド間にカンマを入れます。

  5. メモ帳で開くことができるようにfile.csvプロパティを変更します。

  6. メモ帳を使用して、任意の文字を '"'に置き換えます。

  7. ""を任意の文字として使用するのは賢明に思えますが、別のセルに配置する必要があります( '$ A $ 50'など)。その後エクスポートで表示されるのは '"" "不都合なトリガです。

  8. メモ帳では、ファイルは保存され、インポートされる* .txtファイルとなり、中間の* .csvが削除されます。

  9. 余分なスプレッドシートシートのクリーンアップで達成されました。

Accessエクスポートツールは、いつかExcelに埋め込むことができます。切り取りと貼り付けを使用するプログラムの中でより一般的な方法は、貼り付けオプションに出力構造を解釈して区切り記号を提供する方法の選択を含めることです。

0
HGB

以下のアプローチを使用してExcelで3列を取り、4列目に文字列を作成しました。

=CHAR(34)&A2&CHAR(34)&","&CHAR(34)&B2&CHAR(34)&","&CHAR(34)&C2&CHAR(34)&""

"''"@"''"アプローチに関する私の問題は、私のデータの2列目が数値だったことです。"''"@"''"アプローチは、数値に関して何もしませんでした。 2列目が空白になっていることがありますが、最終テキストファイルに表示されていることを確認する必要があります。

0
user415149

Windowsユーザー向け

  1. CSVとして「名前を付けて保存」Excelファイル
  2. Mircrosoft Works表計算で保存されたファイルを開く
  3. スプレッドシートをCSVとして「名前を付けて保存」
  4. すべての非数値フィールドは、現在「周囲に」あります。

これは前方と後方の多様性を持っている同じキーボードの引用符ではないことに注意してください。
したがって、MySQLを使用してMySQLテーブルにロードする場合は、ENCLOSEDパラメータにカットアンドペーストします。そうしないと、メッセージ#1083 - Field separator argument is not what is expectedが表示されるのはなぜでしょうか。

0
Greg