Comment créer des dossiers et des sous-dossiers des données présentes à l'intérieur d'Excelsheet à l'aide de java

J'essaie de créer des dossiers en utilisant le contenu de l'excel. Je peux lire le file excel avec datatables correctes mais je ne peux pas créer les dossiers à partir de ces données.

Le code que j'ai écrit jusqu'à présent:

public static void main(Ssortingng[] args) { try { InputStream ExcelFileToRead = new FileInputStream("C:\\Users\\430427\\Desktop\\vivek.xlsx"); XSSFWorkbook wb = new XSSFWorkbook(ExcelFileToRead); XSSFWorkbook test = new XSSFWorkbook(); XSSFSheet sheet = wb.getSheetAt(0); XSSFRow row; XSSFCell cell; Iterator rows = sheet.rowIterator(); while (rows.hasNext()) { row = (XSSFRow) rows.next(); Iterator cells = row.cellIterator(); int i = 0; while (cells.hasNext()) { cell = (XSSFCell) cells.next(); XSSFCell cell2 = row.getCell(i); i++; if(cell2 !=null){ //if(cell2.toSsortingng().replaceAll("\\s", "").length()>0) System.out.print("/"+cell2); Ssortingng dirName = "C:\\Users\\430427\\Desktop\\"+cell2; new File(dirName).mkdir(); } } System.out.println(); i = 0; } System.out.println("\n"); } catch (IOException ex) { ex.printStackTrace(); } } 

https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCell.html

cell2 est XSSFCell object pas une string.

Essayez cell2.getSsortingngCellValue() dans Ssortingng dirName = "C:\\Users\\430427\\Desktop\\"+cell2; pour get la valeur de la string.

Et je vous suggère d'get le profil d'user à partir de votre code au lieu de coder sur le path d'access.


MODIFIER:

Il n'y a aucun columnIterator dans apache poi. J'ai donc proposé une autre approche. Ce code n'a de sens que pour votre cas (une seule ligne aux premières colonnes et une ou plusieurs lignes à la dernière colonne) comme vous l'avez dit dans le commentaire:

Les données sont comme CALEG en A1,101 en B1, html en C1, Titre A, Titre B, Titre C, Titre D en D1, D2, D3, D4 respectivement.

J'espère que vous donner une idée de mettre en œuvre ce dont vous avez besoin.

 public static void main(Ssortingng[] args) { XSSFWorkbook wb = null; try { // input file path here InputStream ExcelFileToRead = new FileInputStream("D:\\test.xlsx"); wb = new XSSFWorkbook(ExcelFileToRead); XSSFSheet sheet = wb.getSheetAt(0); XSSFRow row; XSSFCell cell; Iterator<Row> rows = sheet.rowIterator(); // destination path here Ssortingng dirName = "D:\\tmp"; Ssortingng parentPath = null; int lastCellIdx = 0; while (rows.hasNext()) { row = (XSSFRow) rows.next(); if (lastCellIdx != 0) { new File(parentPath + "\\" + row.getCell(lastCellIdx).toSsortingng()).mkdir(); } else { Iterator<Cell> cells = row.cellIterator(); while (cells.hasNext()) { cell = (XSSFCell) cells.next(); if (cell != null) { dirName = dirName + "\\" + cell.toSsortingng(); } } lastCellIdx = row.getLastCellNum() - 1; parentPath = new File(dirName).getParent(); new File(dirName).mkdirs(); } } } catch (IOException ex) { ex.printStackTrace(); } finally { try { wb.close(); } catch (IOException e) { e.printStackTrace(); } } }