0

xlsとxlsxの両方で作業する必要があります。xssfを使用しているときにメモリ不足エラーが発生したため、sxssfに変更しましたが、それが機能しない場合は、ssusermodelの代わりにeventusermodelを使用するようにコードを変更したいと思います。残念ながら、私はイベントAPIの使用方法をよく理解していないので、誰かがファイルファイルまたは入力ストリームからワークブックに移動するためのサンプルコードを提供できれば。

4

1 に答える 1

0

Event APIを使用する必要があります。つまり、読み取りとSXSSFWorkbook書き込みにSAXを組み合わせる必要があります。

このは、ExcelからCSVへのコンバーターです。endElement()メソッドでも同様に何かを行う必要があります。作成されていない場合は新しい行を作成し、値(name == "v")があるたびに新しいセルを作成する必要があります。セルのタイプと新しい値を設定します。

if ("v".equals(name)) {
            if (row == null)
                row = sheet.createRow(0);
            cell = row.createCell(thisColumn);

            switch (nextDataType) {
            case BOOL:
                cell.setCellType(Cell.CELL_TYPE_BOOLEAN);
                char first = value.charAt(0);
                thisStr = first == '0' ? "FALSE" : "TRUE";
                if (thisStr == "FALSE")
                    cell.setCellValue(false);
                else
                    cell.setCellValue(false);

            case OTHER_CELL_TYPE:
                 //.... 

            default:
                cell.setCellType(Cell.CELL_TYPE_BLANK);
                break;
            }
             //......More proccessing
}

ここに、それを保存する方法をよりよく理解するためのapachepoiSXSSFの例があります。

于 2012-06-22T09:25:54.317 に答える