sql >> データベース >  >> RDS >> Mysql

phpを介してcsvセルにキャリッジリターンを作成する

    CSV仕様 これは私がさまざまな方法で実装されていると思うものです...基本的には、人気があることを考えるとイライラするのは、半分しか仕様が定められていないようです。

    CSVのセル内に改行を含めるには、セルを折り返すか、改行をエスケープする必要があります。リンクされたドキュメントから、これを行うには3つの方法があり、プログラムによって処理方法が異なることがわかります。

    1. Excelは、セル全体を二重引用符で囲みます。セルは、二重引用符で囲まれている限り、セル内に(エスケープされていない)改行文字を含めることができ、単一のセルと見なすことができます(Excelスタイルを使用する必要があることに注意してください)。セルの内容内での二重引用符のエスケープ)
    2. 他のプログラムでは、文字の前に1つの円記号が挿入されるため、\で終わる行が挿入されます。 行の終わりとは見なされませんが、セル内の改行文字と見なされます。セルの前に円記号文字が付いている限り、セル内にエスケープされていない改行文字を含めることができます。
    3. 他の人は、改行をCスタイルの文字エスケープ、実際の文字シーケンス\nに置き換えます。 または\r\n 。この場合、セルは改行文字を完全にエスケープしています。

    この問題は、制御文字(およびその他のコンテンツ("など)をエスケープする必要がある可能性があるため、さらに複雑になります。 #1、および\ #2 + 3)およびさまざまなスタイルのエスケープ(たとえば、埋め込まれた引用符は次のようにエスケープできます:double double quote "" または円記号-二重引用符\"

    私のアドバイス :複数行とキーエスケープ文字を含むOpenOfficeドキュメントを生成し、OpenOfficeがCSVを生成する方法を確認します ファイル。そこから、セル内の改行に使用する上記の方法と、エスケープする方法を決定できます。

    スタイル1の例(Excel):

    #num,str,num
    1,"Hello
    World",1990
    2,"Yes",1991
    

    スタイル2の例:

    #num,str,num
    1,Hello \
    Word,1990
    2,Yes,1991
    

    スタイル3の例:

    #num,str,num
    1,Hello \nWorld,1990
    2,Yes,1991
    


    1. ClusterControl CMON HA for Distributed Database High Availability-パート2(GUIアクセスセットアップ)

    2. SASの大きな文字フィールドサイズ

    3. PG ::GROUPBY句のエラー

    4. UbuntuマシンにOracleInstantClientとpdo_ociをインストールするにはどうすればよいですか?