У меня возникли проблемы с моим android приложением; Я хочу, чтобы пользователи могли загружать файл Excel в Firebase и заполнять RecyclerView данными об этом файле. У меня нет проблем с заполнением RecyclerView, я знаю, как это сделать, у меня проблема с чтением файла. Я загрузил его в Firebase следующим образом:
StorageReference stRef = storageRef.child("clienti.xlsx");
UploadTask task = stRef.putFile(file);
task.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Toast.makeText(getActivity(), "Upload error: "+exception.getMessage() , Toast.LENGTH_SHORT).show();
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
downloadFile("clienti");
}
Это все работает до сих пор, я также загружаю файл из firebase в указанную c папку, но теперь я не знаю, как его «прочитать» и взять данные из него; я пробовал это, но мне всегда говорили, что файл не существует.
String[][] arrays = read( Environment.getExternalStorageDirectory() + localFile.getPath());
if(arrays == null){strHyouji="no such file";}else{
for (String[] array : arrays) {
for (String v : array) {
strHyouji = strHyouji + v + ",";
}
strHyouji = strHyouji + "\n";
aList.add(strHyouji);
}
}
Toast.makeText(getActivity(), strHyouji, Toast.LENGTH_SHORT).show();
Здесь метод read ():
Workbook workbook = null;
try {
WorkbookSettings ws = new WorkbookSettings();
ws.setGCDisabled(true);
workbook = Workbook.getWorkbook(new File(dbStr), ws);
Sheet sheet = workbook.getSheet(0);
int rowCount = sheet.getRows();
String[][] result = new String[rowCount][];
for (int i = 0; i < rowCount; i++) {
Cell[] row = sheet.getRow(i);
result[i] = new String[row.length];
for (int j = 0; j < row.length; j++) {
result[i][j] = row[j].getContents();
}
}
return result;
} catch (BiffException e) {
strHyouji=strHyouji+ e.toString();
} catch (IOException e) {
strHyouji=strHyouji+ e.toString();
} catch (Exception e) {
strHyouji=strHyouji+ e.toString();
} finally {
if (workbook != null) {
workbook.close();
}
}
return null;