2017-05-24 8 views
3

私は新しい仕事/インターンシップの一環としてOpenUI5を学習しています。私が取り組んでいる製品では、エクスポートされたcsvは、必要なものが正しくエクスポートされている限り正しいですが、項目の文字列/入力に改行文字が含まれているか、またはEnterキーで終了すると、CSVエクスポートが中断されますが、テーブル内のモデルは正しく表示されます。先に述べたようにopenUI5でのcsvエクスポートでの不要な改行/改行の削除

exportType : new sap.ui.core.util.ExportTypeCSV({ 
        separatorChar : "," //; 
       }), 
       models : table.getModel(), 
       rows : { 
        path : "/interactions" 
       }, 
       columns : [ { 
        name : "description", 
        template : { 
         content : "{description}" 
        } 
       }] // There is more listings after this but it's not important 
// ... more items here 
      }); // End of the bounded data to export 

description.replace(/(\r\n|\n|\r)/gm," "); 

は、このタイプの構造内にある任意の改行を削除するために働くだろうか文字列が、データがこのアプリケーション内でバインドされている方法の中に発見され入る何ですか、私のアイテム「説明」は改行文字を含めることができますが、私は、輸出でCSVに変換するときに、それはこのような何かを行います。

90000440,Information Protection Policy,Scene1_QuestionDraw01_Slide1_TrueFalse_0_0,The Information Security Officer is responsible for the review and revision of this policy. 
(True or False),false,false,1,1 

があると想定されていません出力されたcsv内の実際の行が返されますが、記述内に改行文字または改行があるため、エクスポート時に1を出力します。

この問題を解決するための助けとなるものはどれも素晴らしいでしょう。

ありがとう、ジョーダン。

+1

時々、文字列の区切り文字は、例えば、カンマや改行、 '1、ジョン、「このようにそれ以外の場合はCSVを破る文字を含むために使用されています文字列に付随するカンマがあります。 "、516一般的な文字列区切り文字には、一重引用符または二重引用符だけでなく、パイプ記号なども含まれます。 – criticalfix

答えて

0

クリティカルフィックスのコメントに示されているように、文字列区切り文字を使用できるようにするのが最善の方法です。これは通常、デフォルトで動作します。現在のUI5コードベースの次のコード:githubを参照してください。昨年の夏に修正されたため、これをカバーしていないUI5のバージョンがある可能性があります(this commit参照)。このコミットを含むバージョンは、コミット自体(著者行のすぐ上にあります)に表示されます。

このコミットを含むバージョンにアップグレードできない場合は、改行を置き換える最初の考えが適切かもしれません。あなたは改行を削除するには、あなたの結合と一緒にフォーマッタを使用することができます。

// all the stuff before 
columns : [ { 
    name : "description", 
     template : { 
      content : { 
       path: "description", 
       formatter: function (description) { 
        return description.replace(/(\r\n|\n|\r)/gm," "); 
       } 
      } 
     } 
}]