0

Excelファイルからデータを読み取ってデータベースに保存する必要があるプログラムがあります。LinkedHashmap を使用して、各セルを文字列として読み取ります。私のExcelファイルには上記のデータが含まれています:

ID名 給与

5 クリスティーン 2349000

6 パウリナ 1000

7 ローラ 12587458

8 efi 34567

43 ジム 45878

プログラムを実行しているときに、必要な結果が得られました。私が今抱えている問題は、ID の昇順でデータベースにデータを保存したいということです。どうすればこれを行うことができますか? 私はtreeMapを使用しなければならないことを知っていますが、どのように正確ですか? 以下のコードは、データベースにデータを格納するためのものです。Excelファイルの2行目からデータを読み取っています。

private static LinkedHashMap[] parseExcelColumnData(List sheetData) {

        LinkedHashMap[] tousRows = new LinkedHashMap[sheetData.size() - 1];
        for (int rowCounter = 1; rowCounter < sheetData.size(); rowCounter++) {

            List list = (List) sheetData.get(rowCounter);

            LinkedHashMap<String, Integer> tableFields = new LinkedHashMap(list.size());
            String str;
            String[] tousFields = new String[list.size()];
            int i = 0;

            for (int j = 0; j < list.size(); j++) {
                Cell cell = (Cell) list.get(j);
                if (cell != null) {
                    if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
                        tableFields.put(String.valueOf(cell
                                .getNumericCellValue()), cell.getCellType());
                    } else if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
                        tableFields.put(cell.getStringCellValue(), cell
                                .getCellType());
                    } else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) {
                        tableFields.put(String.valueOf(cell
                                .getBooleanCellValue()), cell.getCellType());
                    }
                }

            }
            tousRows[rowCounter - 1] = tableFields;
        }
4

1 に答える 1

0

ツリーマップ キー (ID) を文字列ではなく整数として保存します。それ以外の場合は、数値順ではなく辞書順で比較されます。

Integer intId = new Integer(stringId);

TreeMap<Integer, Object>ここで、キーが整数 ID で、値が格納されるオブジェクトである a (またはTreeMap<Integer, String>格納するものに応じて何でも)を割り当てる必要があります。

TreeMap<Integer, Object> treeMap = new TreeMap<Integer, Object>();
treeMap.put(intId, obj);

値を読み取るときが来たら、 を使用treeMap.values()して、ツリーマップ内の値の並べ替えられたコレクションを取得します。

于 2013-04-25T14:01:14.563 に答える