一部のセルに二重引用符で囲まれたテキストが含まれているUnicodeコンテンツのExcelファイルがあります(例:"text"
)。
ExcelファイルをUnicode形式のテキストファイルに保存すると、二重引用符を含むテキストは、"""text"""
のように、3つの二重引用符として保存されます。
カンマ(、)を含むテキストさえあるところがあります。たとえば、Unicodeファイルでtext,
に変換される"text,"
です。テキストに二重引用符が追加されていますが、これには特殊文字が含まれていると思います。
どうすればこれを回避できますか?
これは標準の動作です(CSVファイルの保存方法と同様です)。 RFC 4180 –カンマ区切り値(CSV)ファイルの一般的な形式とMIMEタイプ を参照してください。
フィールドを囲むために二重引用符を使用する場合、フィールド内に表示される二重引用符は、その前に別の二重引用符を付けることでエスケープする必要があります。
それはあなたのケースにどのように当てはまりますか?
つまり、"Text"
は"""Text"""
として保存する必要があります、フィールドを区切る外側の引用符、および他の2つの引用符が使用されますテキストフィールドに使用した実際の引用符をエスケープします。そうしないと、"Text"
はText
として解析されるだけで、ファイルを再度開くときに引用符が失われます。
ExcelはText,
も引用することを選択します。これは、カンマがカンマ区切りファイルで区切り文字として使用され、引用符で囲まない場合、text,
が2つのフィールドとして解析されることを意味します。ファイル。
それらを出力に含めたくない場合は、テキストエディターで結果のファイルを開き、単純な検索と置換ですべての引用符を削除することを検討してください。
私もこの問題を抱えていました。次に、Save as type:オプション "Formatted Text(Space delimited)"を見落としていることに気付きました。また、する必要がある .txt拡張子を指定するか、デフォルトで.prn拡張子を使用します。たとえば、ファイル名だけではなく、filename.txt。 試してみる。 動作します。
文字列に引用符がない場合でも、Unicodeに保存すると引用符が追加されたようです。ここに私がそれを回避する方法があります:
xxx
を使用しました)。"
とxxx
xxx
を検索して引用符で置き換えますExcelでファイルをスペース区切りの.prnとして簡単に保存し、ファイル名を.txtに変更します。私はこれを18000行の危機に使用しました。 ;)