問題タブ [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 - どの apache commons CSV パーサーを使用しますか? SOLR CSV またはコモンズ CSV? 両方とも同じですか?
重複の可能性:
Java の csv api
commons-csvおよびsolr-commons-csv の開発者には、特にapache-solr/luceneを対象としていると言及されているようには見えません。
よく使用する CSV パーサーは何ですか? そのうちの1つだけを使用する必要がありますが、これは単純なCSVであり、複雑ではありません.
java - Apache Commons CSV ライブラリのカプセル化されたトークンと区切り文字の間の無効な文字
Apache Commons CSVライブラリを使用して CSV ファイルを解析しているときに、次のエラーが発生します。
このエラーの意味は何ですか?
java - ヘッダー マッピングが指定されていないため、レコード値に名前でアクセスできません (Apache Commons CSV)
csv を読み込もうとすると、次のエラー メッセージが表示されます。
Java 結果: 1
Apache Commons CSV ライブラリ 1.1 を使用しています。エラー メッセージをグーグルで調べてみましたが、grepcode などのサイトにリストされているコードだけが表示されます。
これが私のコードです:
CSV の内容:
それは私の src フォルダーにあります。
java - Apache Commons CSV - 大文字と小文字を区別しないヘッダー?
csvを読み取るときにヘッダーの大文字と小文字を無視するためのApache CSV実装の組み込み機能はありますか?
少し前に、CSV エクスポート ファイルを SQL に変換するためのユーティリティを実装しました。そのために、Apache CSV を選択しました。今までは何の問題もなかったのに、変更の依頼が来ました。
処理するすべての CSV ファイルにはヘッダーが含まれている必要があり、大文字と小文字を区別しない方法でそれらのヘッダーを読み取る必要があるため、ユーザーは作成した CSV がヘッダーの大文字と小文字の要件に従っているかどうかを確認する必要がありません。
コードサンプル:
ここで Data.NAME は
また、ユーザーがCSVの列ヘッダーとして大文字の「N」の「名前」ではなく「名前」を使用すると、問題が明らかに発生します。
API とソースの両方をたどりましたが、何も見つかりませんでした。CSVRecord がそのマッピングまたは同様のものに CaseInsensitiveMap を使用するように強制する方法はありますか?
java - JavaでApache Commonsを使用してCSVを作成するときに二重引用符を含める
csvファイルを書き込むためにapache commons CSVを使用しています。私はこのライブラリに固執したい。csv ファイルを作成しているときに、生成されたファイルの最初の列に引用符として二重引用符が含まれており、他の列は期待どおりに生成されます。
ここで二重引用符を本当に取り除きたいです。同じコードの下に見つけてください。
温度.csv
"",hello1,,テスト
"#",hello2,,テスト
"",hello3,,テスト
"",hello4,,テスト
すべての行の先頭に引用符を付けたくありません。列3と同じように、引用符のない空の文字列が必要です。誰か助けてもらえますか?
java - 2 つの区切り文字のいずれかを含む可能性のある CSV ファイルを解析する方法は?
私の場合、有効な CSV はコンマまたはセミコロンで区切られたものです。私は他のライブラリを受け入れていますが、それは Java である必要があります。Apache CSVParser API を読んで、私が考えることができる唯一のことは、非効率的で醜いように見えるこれを行うことです。
最初に区切り文字を確認する方法、またはおそらく 2 つの区切り文字を許可する方法はありますか? 例外をキャッチするよりも良いアイデアはありますか?
java - クラスがapache commons csvライブラリでfinalとして宣言されているのはなぜですか
Apache commons CSV パーサー クラスが例外をスローする
「カプセル化されたトークンが終了する前に EOF に達しました」
擬似コードの
エラーの理由は、CSV ファイルがチャンクで解析されるためです。つまり、ファイルのコンテンツ全体を一度に渡すのではなく、そのチャンクを渡します。終了トークンが発生することが保証されていないため、エラーは理にかなっています。
例の文字列はa1,b1,c1,d1,e1,f1\na,b,"csdsds,
、2 行目の終了引用符が欠落していることがわかります。
ライブラリのソースコードを変更して、最後の行を記憶し、それをファイルコンテンツの次のチャンクとマージしたい例: 次のチャンクはdfdfd",a,c
、コンテンツがa,b,"csdsds,dfdfd",a,c
ソースコードを確認する最初のステップは、Lexer.java を拡張し、このクラスが上記の EOF 例外をスローしているためメソッドをオーバーライドし、CSVParser.java クラスも拡張する必要があることです。
しかし、問題は、これらのクラスが final として宣言されており、それらを拡張できないことです。これらのクラスが final として宣言されている理由を理解したいですか?
java - CSV ファイルの特定の行を置き換える方法は?
CSV ファイルの特定の行にアクセスして、特定のフィールドを置き換えることはできますか? たとえば、この擬似コードのように:
Apache Commons CSVとOpenCSVを試しましたが、それらをどのように使用するかわかりません。私が考えることができる唯一の方法は、ファイルを反復処理し、すべてを新しいオブジェクトに保存してファイルを作成することですが、それは良い方法とは思えません。
ご提案ありがとうございます。