Comment faire pour supprimer une ligne à l'aide d'apache poi
J'ai essayé d'enlever la troisième ligne
C'EST L'ÉDITION que j'ai faite sur la base des observations de rgettman, Leo, zibi. Je vous remercie.
public class MainTest {
public static void main(String[] args) throws IOException {
FileInputStream file = new FileInputStream(new File("test.xlsx") );
XSSFWorkbook wb = new XSSFWorkbook(file);
XSSFSheet sheet = wb.getSheetAt(0);
sheet.removeRow(sheet.getRow(3));
// sheet.shiftRows(3, 3, -1);
File outWB = new File("testResult.xlsx");
OutputStream out = new FileOutputStream(outWB);
wb.write(out);
out.flush();
out.close();
System.exit(0);
}
}
Mais cela supprime les valeurs dans une ligne, mais ne pas supprimer la ligne
J'espère que excel n'attend pas un fichier xlsx
Vous êtes décalage de la ligne 3 par 1. Utiliser des nombres négatifs pour déplacer vers le haut.
Vous êtes décalage de la ligne 3 par 1. Utiliser des nombres négatifs pour déplacer vers le haut.
OriginalL'auteur CHEBURASHKA | 2014-02-21
Vous devez vous connecter pour publier un commentaire.
Si vous travaillez avec des fichiers XLS (pas XLSX), alors vous devriez utiliser HSSFWorkbook. Je viens de tester la solution ci-dessous et tout fonctionne bien:
ou même beter utiliser le cahier de travail de l'usine, qui n'type reconnaissant pour vous:
belowe vous pouvez trouver une fonction qui ne la ligne de retrait, il pourrait être utilisé à la fois en xls et xlsx (testé;)).
+1 Merci. Cela fonctionne super . Cependant, je suis en utilisant
xlsx
. Pourriez-vous s'il vous plaît modifier votre réponse àxlsx
Merci.Avez-vous essayé classeur usine?
J'ai essayé classeur usine . elle ne crée pas un fichier
Pourriez-vous svp poster votre code dans la question?
OriginalL'auteur zibi
Voir la définition de Maj lignes:
Shifts rows between startRow and endRow n number of rows. If you use a negative number, it will shift rows up. Code ensures that rows don't wrap around. Calls shiftRows(startRow, endRow, n, false, false);
Additionally shifts merged regions that are completely defined in these rows (ie. merged 2 cells on a row to be shifted).
Afin de supprimer la 3ème ligne, vous devez utiliser
startRow = 3
(de base zéro de l'indexation donc, fondamentalement, c'est à la quatrième ligne),endRow = sheet.getLastRowNum()
etn = -1
pour décaler les lignes sélectionnées à dire à partir de la 4e à la dernière ligne en 1 ligne vers le haut.OriginalL'auteur Sankumarsingh
Essayer de mieux la fonction spéciale removeRow
Aussi, XSSFWorkbook travailler avec .extension xlsx.
OriginalL'auteur AppLend