問題タブ [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 - CSVをめちゃくちゃにすると、例外が発生します
バグを見つけたと思います。あるいはそうではないかもしれませんが、SuperCSVはそれをうまく処理できません。
MapReaderを使用して41列のCSVファイルを解析しています。しかし、私はそのCSVを取得しています-そして、CSVを提供するWebサービスは1行を台無しにします。「見出し」行は、41個のセルを持つタブ区切りの行です。
また、「間違った行」は、36個のセルを持つタブ区切りの行であり、内容は意味がありません。
これは私が使用しているコードです:
上記の行でmapReader.read(headers)を実行すると、例外が発生します。これは例外です:
あなたは私が何をすべきだと思いますか?
1つの行が混乱しているという理由だけで、アプリケーション全体がクラッシュすることは望ましくありません。その行をスキップしたいと思います。
java - SuperCSV を使用して 1 回のパスですべてのフィールドを検証する
SuperCSV を使用して、データベースから CSV ファイルに多数の行 (〜 200 万) を書き込もうとしています。作成された各セルに対して検証を実行する必要がありますが、組み込みの CellProcessors は非常にうまく機能します。ソース データに戻って変更できるように、CellProcessors によってスローされたすべての例外をキャプチャしたいと考えています。
問題は、単一の行に複数のエラーがある場合 (たとえば、最初の値が範囲外で、2 番目の値が null であってはならない)、最初の CellProcessor のみが実行されるため、1 つしか表示されないことです。エラーの。ファイル全体を 1 回のパスで処理し、最後に完全な例外セットを設定したいと考えています。
これは私が試みているアプローチの一種です:
どうすればこれを達成できますか?ありがとう!
編集:これは私が書いたコードで、ハウンドドッグのコードに似ています。
java - スーパーCSVMavenリポジトリ
Javaで利用可能なさまざまなCSVAPIのすべての長所と短所を確認した後、SuperCSVを使用することを計画しています。
最新バージョン(2.0.1 Finalだと思います)で更新されたMavenリポジトリを投稿できますか?Mavenリポジトリにまだベータ版が表示されています。
java - スーパーCSVを使用して空白のみの行をスキップするにはどうすればよいですか?
空白または空白のみの行をスキップするようにスーパーCSVを構成するにはどうすればよいですか?
CsvListReaderを使用していますが、データに空白行が表示されることがあります。これが発生した場合、次の効果の例外:
CellProcessorsの数はフィールドの数と一致する必要があります
これらの行をスキップしたいと思います。
java - Eclipse Super CSV がメソッドを正しく認識していない
提出したばかりのプロジェクトでスーパーcsvを使用したところ、問題なく動作しました。ビルドパスにjarがあり、すべてが最初のプロジェクトと同じです。だから私の問題はどこですか、最初のプロジェクトで、私は
メソッドとそれはうまくいきました..使用されるさまざまな値を入れていました.line int、int、long、long、long、long、long、longは初めて入れたもので、うまくいきました。 ..
私の 2 番目のプロジェクトである IN THE SAME WORKSPACE では、Eclipse は以下と同じメソッドを認識します。
これを修正する方法が本当にわかりません。どんな提案も素晴らしいでしょう!
java - 部分的なcsvファイルからクラスを埋める方法
私はJavaでクラスを持っています:
CSVファイルからデータを入力する必要があります。ただし、CSV ファイルのすべての列が必須というわけではなく、順序が異なる場合もあります。
CSV の例 1:
ID、電話番号、名前
1,421904123456、ピーター
2,420558811225、ジョン
...
CSV の例 2:
ID、名前
3、アレックス
8、ステファン
それを行う方法について何かアドバイスはありますか?
java - スーパーCSVを使用してCSVファイルから行を削除するにはどうすればよいですか?
私はスーパーCSVに少し慣れていません。CSVファイルの行を削除または変更するためのプロビジョニングがあるかどうかを確認したいだけですか?
ソースを見ると、rwモードでのRandomAccessFileの使用はわかりません。これをカスタマイズする方法はありますか?
java - 生成されたcsvファイルの不要な二重引用符
以下のJavaコードを使用してCSVファイルを作成しました。
CSVファイルを取得していますが、ファイルの内容に不要な二重引用符が含まれています。
例えば。「ABC」、「123」、「KDNJ」
これらの二重引用符が追加された場所からはわかりません。
java - `CsvDozerBeanWriter` を使用するときに空の `String` 属性をマップするように SuperCSV に指示するにはどうすればよいですか?
CsvDozerBeanWriter
Bean インスタンスを CSV ファイルに書き込むために使用しています。Bean を CSV に書き込む前に使用したコード例に従います。Bean の属性が ( ではなく) 空CsvDozerBeanWriter#configureBeanMapping(...)
の場合を除いて、すべてが正常に機能します。そのような属性は、書き込み前に Bean から中間インスタンスにコピーされないことがわかりました。これにより、列の数がセル プロセッサの数と一致しないため、例外が発生します。String
null
CsvDozerBeanData
configureBeanMapping(...)
掘り下げてみると、 Dozer を に設定するのと同じことを実行することがわかりましmap-empty-string
たFalse
。したがって、空の文字列はすべてマップされません (null
文字列は引き続きマップされます)。
どうすればこれを克服できますか?DozerBeanMapper
(ドキュメントにあるように)自分で提供するのが最善の方法ですか?
アップデート:
私が得た例外の詳細は次のとおりです。
Bean には から までの属性String
があります。~の属性は空の文字列です。a
l
h
l
更新 2:
ここにテストケースがあります。
java - CSV ファイルをアップロードして、データを DB に自動的に挿入するにはどうすればよいですか?
Spring セキュリティも使用する Java ベースの Spring MVC アプリケーションがあります。この Web アプリの ORM ツールとして hibernate を使用しています。
以下は私の要件です -
ユーザーは、Web ブラウザーを使用して CSV ファイルをアップロードできます。CSV ファイルの形式には、次の 5 つのフィールドがあることが知られています。
このように約100行あります。
プロジェクトで Super CSV を使用しています。
ここでは、CSV ファイルの内容を読み取り、Hibernate を使用して挿入しています。
ローカルまたは Windows 共有で CSV パスを提供しているため、これは正常に機能します。
Spring MVC を使用して Web ページのボタンによって CSV ファイルのパスの場所が提供されるようにするには、どうすればこの要件を達成できますか?
リモートの場所からファイルを自動的に取得して、ファイルを FTP の場所にアップロードし、プログラムがリモートの ftp の場所に接続してスケジュールに従ってファイルを処理できるようにすることもできますか?
PS: 私はファイル操作が初めてで、誰かが記事を指し示すことができれば、それは素晴らしいことです.