gpt4 book ai didi

java - 有没有办法读取从 Firebase 下载的 Excel 文件?

转载 作者:行者123 更新时间:2023-12-01 17:21:01 25 4
gpt4 key购买 nike

我的 Android 应用程序有一些问题;我希望用户可以在 Firebase 上上传 excel 文件,并使用该文件上的数据填充 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 下载到特定文件夹,但现在我不知道如何“读取”它并从中获取数据;我已经尝试过这个,但它总是对我说该文件不存在。

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;

最佳答案

使用 Apache POI,您可以读取 Excel。这里,ColumnHeaderString 是 Excel 工作表的实际列标题,datafromcell 是标题下转换为 String 的值。

读取文件

File file = new File( path ) // String file path
FileInputStream fileInputStream = new FileInputStream( file )
XSSFWorkbook workbook = new XSSFWorkbook( fileInputStream )

使用工作簿

    XSSFSheet sheet = workbook.getSheetAt( 0 );
private DataFormatter excelDataFormatter = new DataFormatter()

Iterator<Row> rowIterator = sheet.rowIterator();
Row header = null;
if( rowIterator.hasNext() )
{
header = rowIterator.next();
}
while( rowIterator.hasNext() )
{
Iterator<Cell> cellIterator = row.cellIterator();
while( cellIterator.hasNext() )
{
Cell cell = cellIterator.next();
int cellIndex = cell.getColumnIndex();
String colHead = header.getCell( cellIndex ).toString();

if( ColumnHeaderString.equals( colHead ) ) // Match the desired column header
{
String datafromcell = excelDataFormatter.formatCellValue( cell ).strip();
}
}
}

关于java - 有没有办法读取从 Firebase 下载的 Excel 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61289167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com