Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JAVA删除excel文件中的所有空行_Java_Apache_Apache Poi_Poi Hssf - Fatal编程技术网

使用JAVA删除excel文件中的所有空行

使用JAVA删除excel文件中的所有空行,java,apache,apache-poi,poi-hssf,Java,Apache,Apache Poi,Poi Hssf,有人能告诉我如何使用ApachePOI迭代和删除excel文件中的所有空行吗?我正在调用这两个函数,其中包含我希望删除的行索引,但第二个函数(shift)始终为我提供最小行索引0 public static void removeRow(HSSFSheet sheet, int rowIndex) { HSSFRow removingRow = sheet.getRow(rowIndex); if (removingRow != null) { sheet.remo

有人能告诉我如何使用ApachePOI迭代和删除excel文件中的所有空行吗?我正在调用这两个函数,其中包含我希望删除的行索引,但第二个函数(shift)始终为我提供最小行索引0

 public static void removeRow(HSSFSheet sheet, int rowIndex) {

   HSSFRow removingRow = sheet.getRow(rowIndex);
   if (removingRow != null) {
       sheet.removeRow(removingRow);
   }
 }

 public static void shiftRow(HSSFSheet sheet, int rowIndex) {
   int lastRowNum = sheet.getLastRowNum();
   if (rowIndex >= 0 && rowIndex < lastRowNum) {
       sheet.shiftRows(rowIndex+1, rowIndex+1, -1);
   }
 }
public static void remove OW(HSSF表单,int rowIndex){
HSSFRow removingRow=sheet.getRow(行索引);
如果(removingRow!=null){
表1.removingRow(removingRow);
}
}
公共静态无效移位(HSSF表,int行索引){
int lastRowNum=sheet.getLastRowNum();
如果(rowIndex>=0&&rowIndex

谢谢

问题出在excel文件中合并的列中

sheet.removeRow(row)
将删除该行,但会在数据中创建空白(洞)或空行,因此会使其不一致。您可以做的是,删除后,您可以移动行,这意味着使用以下方法将所有剩余行向上移动一步:

int rowToDeleteIndex = // The row number you want to delete
int lastRowIndex = worksheet.getLastRowNum();
worksheet.shiftRows(rowToDeleteIndex + 1, lastIndex, -1);