我们能否在我的应用中显示设备存储中的xls文件?

3

我最近创建了一个安卓应用。
在这个应用中,我通过使用谷歌文档查看器并传递文件的URL,成功地显示了一个XLS文件:

WebView mWebView=new WebView(MyActivity.this);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url="+LinkTo);
    setContentView(mWebView);

所以,现在我需要显示保存在设备存储中的同一个XLS文件,这次不是从URL,而是直接从存储中读取。我找到了很多关于使用URL链接来实现它的建议,但没有关于已经保存在设备上的文件的。因此,在开始之前,我想知道是否可能?我看到了这个方法`myWebView.loadData();`我能用它来解决我的问题吗?我能在内部文件中使用docs.google.com/gview吗?编辑:我尝试了Der Gol ...lum的解决方案。这是我的代码:
WebView wv = (WebView)findViewById(R.id.fileWebView);
    wv.getSettings().setJavaScriptEnabled(true);
    String root = Environment.getExternalStorageDirectory().toString();
    String my_path = root + "/excel_files/";
    wv.loadUrl("file://" + my_path + excelFile.getName());
    wv.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return false;
        }
    });

但是Webview显示一个空白页面。

1
@DerGol...lum 谢谢!我会尝试的!是的,它仅用于显示文件,不可能进行修改,因此对于静态和不可变文件没有问题 =) - Slasch
1个回答

1

假设您的文件是静态的不可变的,您可以将文件放在assets文件夹中,并使用

mWebView.loadUrl("file:///android_asset/your_file");

要加载到您的WebView中。
我使用此技术显示帮助文件(HTML文件)。

您还可以使用子文件夹,在assets下(在我的情况下,我使用一个URL,例如:"file:///android_asset/help/help_" + language + ".htm"),
因为我的文件位于assets/help/中。


1
然后从存储中读取它...类似于 "file://" + your_path + "your_file"。在文件名之前,your_path应该包括"/"路径分隔符。 - Phantômaxx
好的,类似这样吧?String root = Environment.getExternalStorageDirectory().toString(); wv.loadUrl("file://" + root + "/excel_files/" + excelFile.getName()); - Slasch
是的,我指的是这样。在 your_path 中,我真正想要的是类似于 String your_path = Environment.getExternalStorageDirectory().toString() + "excel_files/" 这样的东西。 - Phantômaxx
1
感谢您的帮助,Der Gol...lum,并为误解道歉。我会尝试其他可能性。 - Slasch
1
有Apache POI扩展。http://www.mysamplecode.com/2011/10/android-read-write-excel-file-using.html - Phantômaxx
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接