Domanda

Considera che ho un foglio di excel in seguito formato:

persona età
Pippo 29
Bar 27

Ora voglio leggere questi valori (utilizzando i punti di interesse HSSF) e hanno per la loro elaborazione.Qual è il modo migliore per farlo?

Nota che io non sono un Oggetto Persona nella mia applicazione, perché i valori che possono venire da un foglio di excel è arbitrario (cioèpotrebbe non essere la persona che il nome e l'età).Così, ho bisogno di usare una specie di HashMap per memorizzare questi valori.In caso di più righe, è bene avere un Elenco !?

È stato utile?

Soluzione

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;
    }
}

Altri suggerimenti

Se il formato è definito, fare una classe che ospita tutti i campi.

Se il formato non è definita passa Riga-s o Elenchi, o anche DOM da excel-di-dom trasformazione.Non avete scelta.Mi raccomando solo bastone per poi nativo di Riga e di oggetti Cella.

Sì, è possibile utilizzare la mappa se si dispone di più i valori di chiave.E non riesco a trovare alcune build-in classe per questo problema.Si può provare a scrivere qualche tipo di involucro.Se non si cura di velocità di utilizzare una semplice matrice 2D come questo:

String[][] filter = new String[initial width][initial height];

può essere Oggetto invece di Stringa;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top