Ich versuche, eine Excel-Arbeitsmappe (.xlsx
) zu lesen, aber das Programm hält nur an, wenn ein Workbook
initialisiert wird. Ich bin mir nicht sicher, was passiert, da es keine Fehler gibt.Programm hält an, Excel-Arbeitsmappe (Apache POI) zu lesen
Wenn ich halt sage, ich meine das Programm pausiert nur. Es läuft immer noch, aber ich habe das Gefühl, dass es festsitzt, nicht sicher.
import java.io.File;
import java.io.FileInputStream;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelReader
{
private String excelFilePath;
private FileInputStream inputStream;
private Workbook workbook;
private Sheet sheet;
// Constructors
public ExcelReader() {
try {
// Get path to excel workbook and put in stream
excelFilePath = "/home/flow/project/mydata.xlsx";
inputStream = new FileInputStream(new File(excelFilePath));
// Get type of workbook (Excel 2003 or Excel 2007+)
workbook = getWorkbook();
} catch (Exception e) {
e.printStackTrace();
}
}
// Get type of workbook (Excel 2003 or Excel 2007+)
private Workbook getWorkbook() {
Workbook work = null;
try {
if(excelFilePath.endsWith("xlsx")) {
System.out.println("In firstIf"); // Prints this
work = new XSSFWorkbook(inputStream); // Gets stuck here
System.out.println("After XSSF"); // Never prints this
}
else if(excelFilePath.endsWith("xls")) {
work = new HSSFWorkbook(inputStream);
}
else
throw new IllegalArgumentException("The specified file is not an Excel file");
} catch (Exception e) {
e.printStackTrace();
}
return work;
}
}
Was mache ich falsch? Warum geht das Programm nicht immer zur nächsten Zeile?
Dis Sie versuchen zu warten, wenn ja, wie viel Zeit haben Sie gewartet? –
Ich wartete über 30 Minuten und Programm tat nichts anderes. – syy
Versuchen Sie, einen Thread-Dump zu generieren (siehe https://confluence.atlassian.com/adminjiraserver071/generating-a-thread-dump-802593021.html zum Beispiel) und veröffentlichen Sie die Ausgabe. Beachten Sie auch, dass das Problem möglicherweise ein anderes Programm ist, das die Datei –