私はJavaとApache POIライブラリとのインターフェイスをプログラミングしています。空の行を削除する際に問題が発生しました。私のコードは次のとおりです。Java Excel POI - 空のセル例外を含む行を削除する
public class ExcelDeleteRowsCols {
final short ROW_START = 0;
final short COL_START = 0;
public void deleteRows() {
try {
// Open file
FileInputStream inf = new FileInputStream("in.xls");
Workbook wb = WorkbookFactory.create(inf);
// Loop every sheets of workbook
for (Sheet sheet : wb){
// Loop every rows of this sheet
int lastIndex = sheet.getLastRowNum();
for (int i = ROW_START; i <= lastIndex; i++) {
if (sheet.getRow(i) == null || sheet.getRow(i).getCell(COL_START) == null || sheet.getRow(i).getCell(COL_START).toString().equals("")){
sheet.removeRow(sheet.getRow(i)); //sheet.shiftRows(i, lastIndex, 2);
}
}
}
// Save as in another file
FileOutputStream fileOut = new FileOutputStream("out.xls");
wb.write(fileOut);
fileOut.flush();
fileOut.close();
System.out.println("Finished!");
} catch (IOException ioe) {
System.out.println(ioe);
} catch (Exception e) {
System.out.println(e);
}
}
}
正確に問題が空のセルを持つ行で例外メッセージのjava.lang.NullPointerExceptionを示すことです。私はそれを理解していない。エクセル例:空のセルがない
"空セル" 回線2 LINE3 LINE4 LINE5 "空セル" Line7 Line8 Line9 Line10 Line11 Line12 Line13
コードは正常に動作しています...
お願いします。
ありがとうございます。
私は問題アナリストだと私はするSystem.out.printlnによってsheet.removeRowを変更します。結果は空のセルにあり、値はnullで、その他のセルは文字列オブジェクトです(例: '[email protected]')。この問題では、値がnullのセルは削除できません。 – ruzD