eu estou tentando ler o arquivo excel para android programaticamente, mas ele exibe ENOENT (Nenhum arquivo ou diretório)

votos
0

Eu estou tentando ler o arquivo excel partir do cartão SD ou armazenamento do telefone na programação android, mas exibe arquivo não encontrado exceção. por favor me ajude. Aqui está o que eu tentei.



    package com.example.readexcel;
    import androidx.appcompat.app.AppCompatActivity;
    import android.app.Activity;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;

    import org.apache.poi.hssf.usermodel.HSSFDateUtil;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.CellValue;
    import org.apache.poi.ss.usermodel.FormulaEvaluator;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.text.SimpleDateFormat;
    public class ExcelTryTwo extends Activity {
        EditText output;
        Button btn_p;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_excel_try_two);
            output = findViewById(R.id.textOut);

            btn_p = findViewById(R.id.btn_p);

            btn_p.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                    intent.setType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);
                    startActivityForResult(intent, 7);
                }
            });
        }

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub

            // super.onActivityResult(requestCode, resultCode, data);
            switch (requestCode) {

                case 7:

                    if (resultCode == RESULT_OK) {
                        Uri PathHolder = data.getData();
                        //String PathHolder = data.getData().getPath();

                        //Toast.makeText(ExcelTryTwo.this, PathHolder , Toast.LENGTH_LONG).show();

                        onReadClick(PathHolder);

                    }
                    break;

            }
        }

        public void onReadClick(Uri filepath) {
            printlnToUser(reading XLSX file from resources);

            File inputfile = new File(String.valueOf(filepath));/*line to be commented*/

            //below line should uncomment
            //InputStream stream = getResources().openRawResource(R.raw.test);

            try {
                InputStream stream = getContentResolver().openInputStream(Uri.fromFile(inputfile));
                XSSFWorkbook workbook = new XSSFWorkbook(stream);
    /*
                InputStream stream=new FileInputStream(inputfile);*//*line to be commented*//*

               XSSFWorkbook workbook = new XSSFWorkbook(stream);*/

                XSSFSheet sheet = workbook.getSheetAt(0);
                int rowsCount = sheet.getPhysicalNumberOfRows();
                FormulaEvaluator formulaEvaluator = workbook.getCreationHelper().createFormulaEvaluator();
                for (int r = 0; r  8000) {
                CharSequence fullOutput = output.getText();
                fullOutput = fullOutput.subSequence(5000, fullOutput.length());
                output.setText(fullOutput);
                output.setSelection(fullOutput.length());
            }
            output.append(string + \n);
        }
    }

geralmente o que eu quero é ler o arquivo excel de armazenamento do telefone ou cartão SD e exibi-lo ao programaticamente android. por favor me ajude com uma amostra de código, eu sou um iniciante. Aqui está o erro exibida: java.io.FileNotFoundException: content /: / com.android.externalstorage.documents / document / primário% 3AmyExcelfile.xlsx: open failed: ENOENT (não existe tal arquivo ou diretório) qualquer um que sabe sobre a leitura de excel arquivo, por favor me ajude. i estou precisando dele como eu estou fazendo meu projeto de pós-graduação ..

mas o arquivo excel tem conteúdo.

Publicado 19/03/2020 em 21:51
fonte usuário
Em outras línguas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more