Excelは特定のフィールドの周りにのみ引用符を置きますが、Excelにすべての列の周りに引用符を付けてCSVファイルを保存させるにはどうすればよいですか。
LibreOfficeまたはOpenOfficeでXLSファイルを開き、[名前を付けて保存]を選択して[テキストCSV]を選択すると、引用符も区切り文字として含まれるCSVファイルが生成されます。例: "Smith"、 "Pete"、 "Canada"、 "Jones"、 "Mary"、 "England"
[すべてのテキストセルを引用する]チェックボックスをオンにするだけです。
数値フィールドも引用するには、保存する前にセル範囲を強調表示してセルのフォーマットを「テキスト」に変更します。
このページには、馬の口から直接出る解決策もあります。
http://support.Microsoft.com/kb/291296/en-us
リンクが劣化した場合、検索するトピックは次のとおりです。
「Excelでカンマと引用符の両方の区切り文字を含むテキストファイルをエクスポートする手順」または「Q291296」
tl; dr:マクロを使う
私はこの簡単な解決策を見つけました:
"''"@"''"
(詳細は下記を参照)貼り付ける文字列は"''"@"''"
です。これは、二重引用符、単一引用符、単一引用符、二重引用符、@記号、二重引用符、一重引用符、一重引用符、二重引用符です。
ここで見つけた情報 からExcel 2010用に編集しました 。
Powershellは正しくダンプするようです。こんな感じ
あなたがpowershellを知らないのであれば、Windowsマシンでpowershell.exeを検索してください。
import-csv C:\Temp\Myfile.csv | export-csv C:\Temp\Myfile_New.csv -NoTypeInformation -Encoding UTF8
誰かに役立つことを願っています。
これが私にとって最も簡単な方法です。スプレッドシートをAccess 2010にインポートし、そこから区切りテキストファイルとしてエクスポートしました。私の欄の周りに引用符を付けてください。ステップダウンしたので、42k行に1分もかかりません。
引用符を追加するセルを強調表示します。 [フォーマット] - > [セル] - > [カスタム]の順に選択し、[種類]フィールドに次の文字列を貼り付けます。\ "@ \" [OK]をクリックします。
投稿者: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-Excel-automatically/
私は、VBAマクロを含まないが、Notepad ++または同様のマクロベースのテキストエディタを必要とする別の方法を見つけました。
ファイルをタブ区切りテキストとしてエクスポートし、エクスポートしたファイルをNotepad ++で開きます。 'tab'文字のすべてのインスタンスをテキスト "、"(つまり、文字通り二重引用符、コンマ、二重引用符)で置き換えてから、別のマクロを使用してテキストの各行に二重引用符を付けます。
ちょっとハッキーだけど、VBAマクロを動かすよりも早く見つけた。
Notepad ++を使用して各行の先頭に引用符を追加する場合は、エクスポートしたcsvファイルを開き、カーソルを1行1列目に置き、メニューをクリックします。Edit/Column Editor ... 、フィールド 'に挿入するテキスト'に、を入力します。 "、各行の先頭に引用符が表示されます。その後、正規表現を使用してすべてのタブを検索/置換できます。
2014年8月21日のMichaelの答え は本当に役に立ちます。しかし、私は追加のステップを1、2実行しなければなりませんでした:
あなたがMS Access(私は2007年のバージョンを持っています)を持っているならばもう一つの方法はそれからテキストファイルとしてそれをエクスポートします。次に、.txtを.csvに変更します。すべての数値フィールドに二重引用符が使用されないように注意してください。そのため、Accessで数値フィールドを二重引用符で囲む必要がある場合は、フィールドを数値フィールドからテキストフィールドに変更します。
データのコピー、数式、エクスポート、ファイルのプロパティの変更、メモ帳での置き換え、エクスポートされたファイルの保存、およびクリーンアップを使用して、カンマ区切りおよび引用符付き文字列のエクスポートをExcel 2016およびメモ帳でのみ実行できます。それぞれが簡単なステップです。詳細に:
エクスポートする列を新しい中間シートにコピーして元のバックアップとして保存し、新しいシートを後で削除してスプレッドシートをそのままにします。
それ以外の場合は発生しない文字を入れて、列の文字列の両端に '#'または ';-)'と書いて、=concat("#",trim(A1),"#")
という式を付けてAと言い、別の列のすべての行にその式を入れます。
式を持ち込まないように '123'メソッドを使用して、A ...の上に新しい列をコピーします。
シートをCSVファイルとしてエクスポートし、数字を含むフィールド間にカンマを入れます。
メモ帳で開くことができるようにfile.csvプロパティを変更します。
メモ帳を使用して、任意の文字を '"'に置き換えます。
""を任意の文字として使用するのは賢明に思えますが、別のセルに配置する必要があります( '$ A $ 50'など)。その後エクスポートで表示されるのは '"" "不都合なトリガです。
メモ帳では、ファイルは保存され、インポートされる* .txtファイルとなり、中間の* .csvが削除されます。
余分なスプレッドシートシートのクリーンアップで達成されました。
Accessエクスポートツールは、いつかExcelに埋め込むことができます。切り取りと貼り付けを使用するプログラムの中でより一般的な方法は、貼り付けオプションに出力構造を解釈して区切り記号を提供する方法の選択を含めることです。
以下のアプローチを使用してExcelで3列を取り、4列目に文字列を作成しました。
=CHAR(34)&A2&CHAR(34)&","&CHAR(34)&B2&CHAR(34)&","&CHAR(34)&C2&CHAR(34)&""
"''"@"''"
アプローチに関する私の問題は、私のデータの2列目が数値だったことです。"''"@"''"
アプローチは、数値に関して何もしませんでした。 2列目が空白になっていることがありますが、最終テキストファイルに表示されていることを確認する必要があります。
Windowsユーザー向け
これは前方と後方の多様性を持っている同じキーボードの引用符ではないことに注意してください。
したがって、MySQLを使用してMySQLテーブルにロードする場合は、ENCLOSEDパラメータにカットアンドペーストします。そうしないと、メッセージ#1083 - Field separator argument is not what is expected
が表示されるのはなぜでしょうか。