Witam! Mam program do wykonywania testu Shapiro-Wilka na podanych wynikach prób. Jedną z możliwości jest wczytanie danych z wybranego przez użytkownika pliku .xlsx.
Dane się wczytują i wyświetlają w tabeli(załącznik) - model posiada dwa Vectory, jeden z nagłówkami i drugi z danymi. Problem zaczyna się gdy, próbuję wyciągnąć dane z drugiego wektora, żeby wykonać na nich obliczenia. Jak wczytać te dane do tablicy jednowymiarowej, tak żeby każda komórka zawierała jedną wartość? Niestety z Vectora "wychodzą" mi całe wiersze i każdy zawiera wartości + nulle. Próbowałam to splitować i wrzucić do tablicy, ale niestety nie działa. Proszę o pomoc
static Vector dat;
static Vector data = Main2.data;
DecimalFormat df = new DecimalFormat("#.#", DecimalFormatSymbols.getInstance());
// String[][] tableData = (String[][]) Main2.getTableData(Main2.table);
String[] tab,tabt;
Object[] arr = data.toArray();
String tmp,tmp2;
//double y;
public void licz() throws ParseException{
/*ilosc = Main.getTextField().getText();
System.out.println(ilosc);
n = Integer.parseInt(ilosc);
System.out.println(n);
c=n/2;
System.out.println(c);*/
//System.out.println(data + "\n");
for (int i =0; i<arr.length; i++){
//for (int j=0; j<Main2.table.getColumnCount(); j++){
// if(data.elementAt(i).toString()!=null){
tmp = data.elementAt(i).toString();
tab = tmp.split(" ");
System.out.print(Arrays.toString(tmp.split("null")) + "Length: " + tab.length);
System.out.println();
//}
public void importExcelSheet(File file) {
data.clear();
headers.clear();
try {
InputStream ExcelFileToRead = new FileInputStream(file);
Workbook workBook = WorkbookFactory.create(ExcelFileToRead);
Sheet sheet = workBook.getSheetAt(0);
Iterator rowIter = sheet.rowIterator();
while (rowIter.hasNext()) {
XSSFRow row = (XSSFRow) rowIter.next();
Iterator cellIter = row.cellIterator();
Vector<String> cellStoreVector = new Vector<>();
while (cellIter.hasNext()) {
XSSFCell cell = (XSSFCell) cellIter.next();
String cellTypeDesc = "";
String cellValue = "";
Integer cellType = cell.getCellType();
switch (cellType) {
case 0:
cellTypeDesc = "NUMERIC";
Double doubleValue = cell.getNumericCellValue();
cellValue = String.valueOf(doubleValue);
/* if (HSSFDateUtil.isCellDateFormatted(cell)) {
if (HSSFDateUtil.isValidExcelDate(doubleValue)) {
Date date = HSSFDateUtil.getJavaDate(doubleValue);
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
cellValue = df.format(date);
System.err.println(cellValue);
}
} else {
Integer intValue = doubleValue.intValue();
cellValue = String.valueOf(intValue);
}*/
break;
case 1:
cellTypeDesc = "STRING";
cellValue = cell.getStringCellValue();
break;
case 2:
cellTypeDesc = "FORMULA";
cellValue = cell.getCellFormula();
break;
/* case 3:
cellTypeDesc = "BLANK";
cellValue = "BLANK";
break;
case 4:
cellTypeDesc = "BOOLEAN";
boolean booleanValue = cell.getBooleanCellValue();
cellValue = "" + booleanValue;
break;*/
case 5:
cellTypeDesc = "ERROR";
byte byteValue = cell.getErrorCellValue();
cellValue = "" + byteValue;
break;
}
cellStoreVector.addElement(cellValue);
//cellStoreVector.add("\n");
}
data.addElement(cellStoreVector);