問題タブ [apache-commons-csv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - CSVFormat.RFC4180 は、.csv ファイルの引用符で囲まれた値を無視します
.csv
値が引用されているファイルがあります
このファイルを次のコード (IntelliJ を使用し、デバッガーで値を観察) で読み取ると、引用符なしで値が返されます。
それを読んで.withQuote('"');
も使わなくても、違いはありません。
csv - CSVPrinter は、区切り記号または行区切り記号がない場合でも値を引用します
CSVFormat の quoteMode が MINIMAL に設定されている場合、 javadocに従って、値に区切り文字 (,) または行区切り文字 '\n' が含まれている場合にのみ、値を引用する必要があります。ただし、値にハッシュ (#) が含まれていても引用します。以下のサンプルコードを参照してください
出力: sw : 単純なテキスト、"##5##"
そのような場合に引用を避けることができる方法を提案してください。
java - サーバーに保存せずにCSVファイルを生成/ダウンロード
Java で apache.commons.csv ライブラリを使用して CSV を生成し、次のコードを使用してサーバーに保存せずにダウンロードできるようにしています。
しかし、ダウンロードのオプションとして保存するように求めるのではなく、ブラウザーに csv を表示します。
コードのどこが間違っていますか、または同じことを行う他の方法はありますか?
java - Apache commons CSV:引用された入力が機能しない
単純な csv ファイルを Apache CSV パーサーで解析しようとしています。引用符を使用しない限り、問題なく動作します。入力に引用符を追加しようとすると
それは私にエラーを与えます:
シンプルで完全なコードを次に示します。
コードで見逃したものを見つけることができません。
java - イテレータのみを持つリストの「スライス」を取得するにはどうすればよいですか?
Fitbit からダウンロードしたデータでいっぱいの CSV ファイルがあります。CSV ファイル内のデータは、基本的な形式に従います。
ファイルのレイアウトの小さな例を次に示します。
現在、CSVParser
Apache Common のライブラリを使用してこのデータを調べています。私の目標は、これを Java オブジェクトに変換して、関連データを Json に変換できるようにすることです (別の Web サイトにアップロードするには Json が必要です)。CSVParser
ファイル内を反復処理するために使用できる反復子がCSVRecords
あります。したがって、基本的に、すべてのデータの「リスト」があります。
ファイルにはさまざまな種類のデータ (睡眠ログ、アクティビティ ログなど) が含まれているため、ファイルのサブセクション/サブリストを取得し、それをクラスに渡して分析する必要があります。
リストを反復処理して、ファイルの新しいセクション (アクティビティ、食品、睡眠など) を識別するキーワードを探す必要があります。ファイルの次の部分が何であるかを特定したら、次のカテゴリまで、次のすべての行を選択する必要があります。
さて、この質問の質問については、イテレータを使用して と同等のものを取得する方法がわかりませんList.sublist()
。これが私が試してきたことです:
したがって、次CSVRecord
が引用符で始まるかデータがあるかを判断し、次のカテゴリが見つかるまでループし、最後にファイルのサブセクションを (イテレータを使用して) 別の関数に渡して、正しいログで何かを行う必要があります。
編集
最初にwhile ループに変換してからList
サブリスト化することを検討しましたが、それは無駄に思えました。私が間違っている場合は修正してください。
また、各セクションに続く行数が同じになるとは限りません。似ているかもしれませんが、完全に異なるパターンに従う食品ログもあります。ここに 2 つの異なる日があります。Foods
通常のパターンに従いますが、フードログはそうではありません。
java - CSV パーサーを使用して CSV ファイルを解析するときにフィールドの二重引用符を無視する
サンプルデータ -
ヘッダー 1、フルネーム、ヘッダー 3、ヘッダー 4
- 20、「ボブ、XXX」、「テスト」、30
- 20, "evan"s,YYY ", "test", 30
20、「トム、ZZZ」、「テスト」、30
/li>
2 行目は期待どおりに読み取れません。full_name 列の値に二重引用符があるためです。
そのような場合は無視したい。任意の提案をいただければ幸いです。
解析には openCSV Java API を使用します。
編集:
データベースからデータを取得しています。データベースの列フィールドの 1 つに、その値に 1 つの二重引用符が含まれています。そのため、csv データの形式が正しくありません。