いいえ、excelシートの価値をJava
-
21-08-2019 - |
質問
ると考えているexcelシートに以下のフォーマット:
人 年齢Foo 29
バー 27
今では、読みたいこれらの値を利用施設HSSF)として処理します。何が最善の方法。
注意のことではありませんがオブジェクトの人に、わけの価値があるとexcelのシートを任意の(できない場合があり人の名前です。そこで、私を利用する必要があっHashMapれに値です。場合は複数行であり、まことにありがとうございます。?
解決
public class Grid {
private Row headerColumns;
private List<Row> dataRows;
public Grid() {
dataRows = new LinkedList<Row>();
}
public Grid(int rowCount) {
dataRows = new ArrayList<Row>(rowCount);
}
public void addHeaderRow(List<String> headers) {
this.headerColumns = new Row(headers);
}
public void addDataRow(List<String> data) {
this.dataRows.add( new Row(data) );
}
public List<Row> getAllData() {
List<Row> data = new ArrayList<Row>(1+dataRows.size());
data.add(this.headerColumns);
data.addAll(dataRows);
return data;
}
public Row getHeaderColumns() {
return headerColumns;
}
public List<Row> getDataRows() {
return dataRows;
}
}
class Row {
private List<String> data;
public Row(List<String> data) {
this.data = data;
}
public void addColumn(String columnData) {
data.add(columnData);
}
public List<String> getData() {
return data;
}
}
他のヒント
フォーマットが定義されている場合、それらすべてのフィールドをaccomodatesクラスを作成します。
のフォーマットが定義されていない場合、ExcelツーDOM変換から行-Sの周りに、またはリスト、あるいはDOMを渡します。あなたは選択肢がありません。私はPOIのネイティブ行とセルオブジェクトに固執お勧めします。
あなたは、複数のキーの値を持っている場合は、[はい、あなたはマップを使用することはできません。そして、私は、この問題のために、いくつかのビルドでクラスを見つけることができませんでした。あなたは、ラッパーのいくつかの種類を記述してみてください。
:あなたはスピードを気にしない場合は、このような単純な2次元配列を使いますString[][] filter = new String[initial width][initial height];
は、文字列の代わりにオブジェクトことができる。
所属していません StackOverflow