csv ファイルには複数のテーブルが含まれており、次のようになります。
"Vertical Table 1" , "id","visits","downloads" 1, 4324, 23 2, 664, 42 3, 73, 44 4, 914, 8 "Vertical Table 2" , "id_of_2nd_tab","visits_of_2nd_tab","downloads_of_2nd_tab" 1, 524, 3 2, 564, 52 3, 63, 84 4, 814, 8
1 つのテーブルを読み取るには、opencsv の「 HeaderColumnNameTranslateMappingStrategy 」を使用します。 これにより、以下に示すように、csv テーブル エントリをTableDataBeanオブジェクトのリストにマップできます。
HeaderColumnNameTranslateMappingStrategy<TableDataBean> strat = new HeaderColumnNameTranslateMappingStrategy<TableDataBean>(); CSVReader reader = new CSVReader(new FileReader(path), ','); strat.setType(TableDataBean.class); Map<String, String> map = new HashMap<String, String>(); map.put("Number of visits", "visits"); map.put("id", "id"); map.put("Number of downloads", "downloads"); strat.setColumnMapping(map); CsvToBean<TableDataBean> csv = new CsvToBean<TableDataBean>(); List<TableDataBean> list = csv.parse(strat, reader);
これは最初のテーブルでは問題なく機能しますが、2 番目のテーブルになると、値と属性が最初のテーブルの同じ属性にマップされます。の出力
for(TableDataBean bean : list){System.out.println(bean.getVisits());}
次のようになります。
4324 664 73 914 null null null visits_of_2nd_tab 524 564 63 814
ファイルを、それぞれが1つのテーブルを含む多くのファイルに分割したくありません。それで、あなたは何を提案しますか?この形式をサポートする他のライブラリはありますか?