Supprimer définitivement les Lignes Vides Apache POI à l'aide de JAVA dans la Feuille Excel
Je voudrais supprimer définitivement les lignes sont vides n'avons pas de données de tout type! Je suis en train de faire ce genre:
private void shift(File f){
File F=f;
HSSFWorkbook wb = null;
HSSFSheet sheet=null;
try{
FileInputStream is=new FileInputStream(F);
wb= new HSSFWorkbook(is);
sheet = wb.getSheetAt(0);
int rowIndex = 0;
int lastRowNum = sheet.getLastRowNum();
if (rowIndex >= 0 && rowIndex < lastRowNum) {
sheet.shiftRows(rowIndex, lastRowNum, 500);
}
FileOutputStream fileOut = new FileOutputStream("C:/juni.xls");
wb.write(fileOut);
fileOut.close();
}
catch(Exception e){
System.out.print("SERRO "+e);
}
}
après shiftRows() j'écris mon nouveau fichier. Mais mon code est maintenant en vigueur. J'ai juste besoin de supprimer/supprimer les lignes vides qui viennent à l'intérieur de mes données (à tout jamais). ainsi est-il possible de le faire? si oui, suis-je en train de faire? si non quelqu'un peut-il m'aider? Merci à l'avance!
Veuillez cochez la case [Comment supprimer les lignes vides entre la feuille à l'aide de pi?][1] peut-être que ce sera utile. [1]: stackoverflow.com/a/16562982/624003
OriginalL'auteur user2496503 | 2013-06-21
Vous devez vous connecter pour publier un commentaire.
Si la mémoire rappelle
shiftRows(int startRow, int endRow, int n)
est ce que vous avez besoin. Je n'arrive pas à se rappeler comment vérifier si une ligne est vide, mais si vous savez qu'une ligne est vide (normalement par l'intermédiaire de l'utilisation deremoveRow(Row row)
) et vous connaissez la rowIndex, alors il n'est pas si mal. En appelant le:vous changez de chaque ligne dans [rowIndex + 1, lastIndex] inclusive par 1 (ce qui devrait supprimer une ligne vide de manière efficace). Si vous avez plusieurs lignes et avait une façon de déterminer si la ligne est vide, alors je suggère quelque chose comme:
Comme une petite remarque si
n
est négatif, les lignes de déplacer vers le haut. Sin
est positif, les lignes sont décalées vers le bas. Donc je ne suis pas tout à fait sûr si vous pensez décalage du bloc de lignes par 500 ou pas dans votre code fourni. J'espère que cette aide.Pas de problème. Ont le plaisir de codage! 😀
Notez que si vous avez un furtif entrée un long chemin vers le bas de votre feuille de calcul, après un important décalage entre les lignes, cette approche peut être très lente, comme il parcourt des centaines de milliers de lignes vides, à plusieurs reprises déplaçant les lignes d'un seul endroit.
OriginalL'auteur Erik Nguyen
Au lieu de
shiftRows
méthode. Essayez leremoveRow
méthode.Pour plus d'informations, jetez un oeil ici.
OriginalL'auteur JHS