android打开指定路径的word或excel文件进行读取

最近小弟的项目中有需要读取word与excel的模块,研究了一下,把心得分享给大家.


QQ图片20180413135257.jpg

首先是布局文件

    

    

    

activity代码:

   /*输入路径*/
    etUrl = (EditText) findViewById(R.id.et_url);
    /*自己选择路径*/
    btUrl = (Button) findViewById(R.id.bt_url);
    /*打开文件*/
    btOpen = (Button) findViewById(R.id.bt_open);
    btUrl.setOnClickListener(this);
    btOpen.setOnClickListener(this);
   /*选择文件路径*/
   case R.id.bt_url:
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("*/*");//设置类型,我这里是任意类型,任意后缀的可以这样写。
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            startActivityForResult(intent, 1);
            break;

   /*打开文件*/
        case R.id.bt_open:
            if (fileUrl!= null) {
                try {
                    File file = new File(fileUrl);
                    Intent intent2 = new Intent("android.intent.action.VIEW");
                    intent2.addCategory("android.intent.category.DEFAULT");
                    intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    Uri uri = Uri.fromFile(file);
                    //application/msword
                    //application/vnd.ms-excel
                    if (fileUrl.contains(".docx")){
                        intent2.setDataAndType(uri, "application/msword");
                    }else if (fileUrl.contains(".xlsx")){
                        intent2.setDataAndType(uri, "application/vnd.ms-excel");
                    }else {
                        intent2.setDataAndType(uri, "text/plain");
                    }
                    startActivity(intent2);
                } catch (Exception e) {
                    //没有安装第三方的软件会提示
                    Toast toast = Toast.makeText(DayweekManagerActivity.this, "没有找到打开该文件的应用程序", Toast.LENGTH_SHORT);
                    toast.show();
                }

                // Intent intent2 = new Intent();
                // intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                //  intent2.setAction(Intent.ACTION_VIEW);
                //  intent2.setDataAndType((Uri) etUrl.getText(), "text/plain");
                //      startActivity(intent2);
            } else {
                Toast.makeText(this, "请选择或输入文件路径", Toast.LENGTH_SHORT).show();
                return;
            }
            break;

    /*接收到刚才选择的文件路径*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == Activity.RESULT_OK) {
        if (requestCode == 1) {
            Uri uri = data.getData();
            etUrl.setText(uri.getPath().toString());
            fileUrl = etUrl.getText().toString();
        }
    }
}

好了,代码到这里就结束了,喜欢就给个赞吧!

你可能感兴趣的:(android打开指定路径的word或excel文件进行读取)