問題タブ [supercsv]
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 - .tsv ファイルの読み取り中に代替行をスキップする
最後に 39 列の .tsv ファイルがありますが、1 つの列には 100,000 文字を超える長さの文字列としてデータがあります。
何が起こっているかというと、1行目を読んだ後、3行目、5行目、7行目に進みます。すべての行に同じデータがありますが、取得しているログに従ってください
以下は私のコードです:
どこが間違っているのか教えてください
java - スーパーcsvを使用して既存のcsvファイルに列を追加する
私は優れた Java プログラマーではないことを認めます。おそらく私の質問はかなりばかげています。既存の csv ファイルの別の場所に新しい列を追加する必要があります。スーパーcsvライブラリを使用しています。
私の入力ファイルはそのようなものです
ご覧のとおり、ヘッダーはありません (または必要ありません)。そして、取得するために、column(2) に列を追加し、各行の最後に列を追加する必要があります。
ライブラリのドキュメントから、元のファイルを直接変更することはできませんが (間違っているのでしょうか?)、それを読んで書き戻すことをお勧めします。CsvMapReaderとCsvMapwriterを使用するのが良い選択だと思います。しかし、どうすれば既存の列の間に列を追加できますか? 既存の列の各フィールドを個別に読む必要があり、ライブラリのドキュメントで提案を見つけようとしましたが、その方法がわかりません。
csv - supercsv 書体データベース
SuperCSV の書き込みで問題が発生しています。DB から CSV ファイルをエクスポートするための Web アプリケーション モジュールを作成しました。問題は、CustomerBean をどのように操作できるかです。このコードは見つかりましたが、ここの顧客は静的です。
次の結果が得られます:クラスjaca.util.HashMapでファイルされた名のゲッターが見つかりません-対応するnameMapping要素がBeanのファイル名と一致することを確認します
csv - Super CSVで常に引用符(エスケープ)を適用する方法
ファイル csv を次の形式のように配置したいと思います。
"ユーザー 2";"Web ページ" ;"AbdelMonem NAAMANE";;;;
私は自分のCsvプリファレンスを次のように作成します:
private static final CsvPreference myPreference = new CsvPreference.Builder('"',';''\n').build();
そういうヘッダーにしたい"User 2";"Web Page"
java - supercsv 列名で列値配列を取得する方法
csv ファイルの例を次に示します。
顧客番号、名、姓、生年月日、郵送先住所、既婚、子供の数、お気に入りの見積もり、電子メール、ロイヤルティポイント
1,John,Dunbar,13/06/1945,"1600 Amphitheatre Parkway Mountain View, CA 94043 United States",,,"""フォースと共にありますように"" - スターウォーズ",jdunbar@gmail.com, 0
2,Bob,Down,25/02/1919,"1601 Willow Rd. Menlo Park, CA 94025 United States",Y,0,"""率直に言って、私の愛する人、私は気にしません."" -風と共に去りぬ",bobdown@hotmail.com,123456
たとえば、lastName に属するすべての列の値を取得するにはどうすればよいですか?
結果は [Dunbar, Down] になるはずです。
ドキュメントを検索しようとしましたが、有用な例が見つかりませんでした。
もう 1 つの質問は、getLineNumber() メソッドの意味は何ですか? ドキュメントを読んだところ、「ファイル内の現在の位置を取得します。ファイルの最初の行は行番号 1 です。 」と書かれています。しかし、私はまだ混乱しています。
java - SuperCSVに空の文字列をnullにマップしないように指示するにはどうすればよいですか
ICsvListReader と ICsvListWriter を使用して csv ファイルを読み書きしています。
csvファイルの空文字列がnullに変換されて出力されることがわかりました。
どうすればこれを回避できますか。新しい CellProcessor を作成しようとしました:
しかし、それはまだ機能していません。
この設定を変更する方法はありますか?
csv - 例外が発生してもcsvBeanReaderで次の行を読み続ける
csvBeanReader を使用して csv ファイルの行を読み取ります。たとえば、while ループを使用して raw を読み取る場合:
例外が発生した場合、プログラムは残りの raw を分析せずにループを終了します。前の行で例外が発生した場合でも、ファイルの次の行を読み続ける方法はありますか?
ありがとう!!!!
java - Super CSVを使用して列数が不明なCSVファイルを処理する方法
プロジェクトでは、実行前に列がわからない CSV ファイルを処理する必要があります。CSV ファイルは完全に有効です。いくつかの異なるファイルに対して単純なタスクを何度も実行するだけで済みます。列の値を分析する必要があるため、CSV ファイルを操作するためにライブラリを使用する必要があります。簡単にするために、列の数に関係なく、すべてのファイルに日付列を追加するなどの簡単なことを行う必要があると仮定しましょう。他のタスクにもライブラリを使用しているため、Super CSV でそれを実行したいと考えています。
私が苦労しているのは、より概念的な問題です。列数が事前にわからないと、ファイルの処理方法がわかりません。任意の CSV ファイルをマップする POJO をどのように定義すればよいのか、またはファイルに含まれる列とその数がわからない場合にセル プロセッサをどのように定義すればよいのかわかりません。列の数に一致する Cell プロセッサを動的に作成するにはどうすればよいですか? たとえば、CSV ファイルのヘッダーに基づいて POJO を定義するにはどうすればよいですか?
products.csv と address.csv の 2 つの CSV ファイルがある場合を考えてみましょう。同じことを行う 2 つの異なるメソッド (addDateColumnToProduct() と addDateColumnToAddress() など) を記述することなく、両方のファイルに今日の日付を含む日付列を追加するとします。
製品.csv:
アドレス.csv:
CSV ファイルのヘッダー情報に基づいて、製品の CSV をマップする POJO を定義するにはどうすればよいですか? セルプロセッサーについても同じ質問ですか? product.csv など、基本的にコンストラクター用の適切な量のパラメーターを持つ非常に単純なセル プロセッサを定義するにはどうすればよいでしょうか。
address.csv の場合:
これは可能ですか?これを達成するために私は間違った道を進んでいますか?
編集 1: 1つのファイルに可変列を持つ CSV ファイルを処理できるソリューションを探していません。実行時に任意の CSV ファイルを処理できるかどうか、つまり、実行時に CSV ファイルに含まれるヘッダー情報のみに基づいて POJO を作成できるかどうかを調べようとしています。csv ファイルに含まれる列数を事前に知らずに。
@babaからの回答とコメントに基づく解決策
supercsv - null 区切り文字を含む SuperCSV
実際には csv ファイルではないファイルを作成していますが、SuperCSV を使用すると、このファイルを簡単に作成できます。ファイルの構造は、異なる情報を分離しないレイアウトに従って、行ごとに異なる長さを使用します。したがって、1行にどの情報が含まれているかを知るには、最初の2文字(レジスタの名前)を見て、文字を数え、サイズで抽出する必要があります.
空の区切り文字を使用するように SuperCSV を構成しましたが、作成されたファイルは何もないはずのスペースを使用しています。
私は何か間違ったことをしていますか?'\0' はヌル文字の正しいコードですか?