JAva poi操作Excel削除行内容と直接削除行
2390 ワード
一般的に、行を削除すると、行の内容は削除されますが、行の位置は保持され、行全体が削除されます(削除後、下のセルが上に移動します).対応する削除方法は、次のとおりです.
サンプルコード:
次のコードは、removeRow()メソッドを使用して行の内容を削除し、行の位置を保持します.コードはd:test.xlsの最初のsheetから最初の行を削除します.変更はworkbook.write以降に有効になる必要があることに注意してください.
次のコードはshiftRowを使用して行全体を削除する効果です.同様に、workbook.writeを行ってから有効になる必要があります.
自分で書いたパッケージのexcel行を削除する方法(shiftRows上で移動して行を削除する):
void removeRow(Row row)//Remove a row from this sheet. All cells contained in the row are removed as well
public void shiftRows(int startRow,int endRow,int n)//Shifts rows between startRow and endRow n number of rows.
サンプルコード:
次のコードは、removeRow()メソッドを使用して行の内容を削除し、行の位置を保持します.コードはd:test.xlsの最初のsheetから最初の行を削除します.変更はworkbook.write以降に有効になる必要があることに注意してください.
import org.apache.poi.hssf.usermodel.*;
import java.io.*;
public class testTools{
public static void main(String[] args){
try {
FileInputStream is = new FileInputStream("d://test.xls");
HSSFWorkbook workbook = new HSSFWorkbook(is);
HSSFSheet sheet = workbook.getSheetAt(0);
HSSFRow row = sheet.getRow(0);
sheet.removeRow(row);
FileOutputStream os = new FileOutputStream("d://test.xls");
workbook.write(os);
is.close();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
次のコードはshiftRowを使用して行全体を削除する効果です.同様に、workbook.writeを行ってから有効になる必要があります.
import org.apache.poi.hssf.usermodel.*;
import java.io.*;
public class testTools{
public static void main(String[] args){
try {
FileInputStream is = new FileInputStream("d://test.xls");
HSSFWorkbook workbook = new HSSFWorkbook(is);
HSSFSheet sheet = workbook.getSheetAt(0);
sheet.shiftRows(1, 4, -1);// ,
FileOutputStream os = new FileOutputStream("d://test.xls");
workbook.write(os);
is.close();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
自分で書いたパッケージのexcel行を削除する方法(shiftRows上で移動して行を削除する):
/**
* Remove a row by its index
* @param sheet a Excel sheet
* @param rowIndex a 0 based index of removing row
*/
public static void removeRow(HSSFSheet sheet, int rowIndex) {
int lastRowNum=sheet.getLastRowNum();
if(rowIndex>=0&&rowIndex