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