216 個の xsls ファイルを含むフォルダーがあります。私のロジックは、フォルダーをループしてすべてのファイルを読み取り、各ファイルの最初の行をコピーして、その行を新しい .xsls ファイルに書き込むことです。
行を繰り返しスローしてすべてのセルを読み取ることなく、最初の行をコピーしたいですか? たとえば、.txt ファイルまたは .csv ファイルの最初の行をコピーするとします。
また、これは非常に遅いプロセスです。このプロセスをスピードアップするためのヒントはありますか?
public static void listFilesForFolder(final File folder,final File exported, int skipLine) {
try {
for (final File fileEntry : folder.listFiles()) {
String ext = fileEntry.getName().substring(fileEntry.getName().lastIndexOf('.') + 1);
System.out.println("-->> " + fileEntry.getName() + "-->>");
FileInputStream file = new FileInputStream(new File(fileEntry.getPath()));
if (fileEntry.isDirectory()) {
continue;
} else if(ext.equals("xlsx")) {
XSSFWorkbook myWorkBook = new XSSFWorkbook(file);
XSSFSheet mySheet = myWorkBook.getSheetAt(0);
Iterator<Row> rowIterator = mySheet.iterator();
Row row = rowIterator.next();
row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()){
case STRING:
System.out.print(cell.getStringCellValue() + "\t");
break;
case NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t");
break;
default:
}
}
System.out.println("");
file.close();
}
}
}catch (Exception e){
System.out.println(e.getMessage());
}
}