我们可以在我的应用程序中显示来自设备存储的 xls 文件吗

Posted

技术标签:

【中文标题】我们可以在我的应用程序中显示来自设备存储的 xls 文件吗【英文标题】:Can we display xls file from device storage in my app 【发布时间】:2015-10-21 10:35:39 【问题描述】:

我目前为 android 创建了一个应用程序。 在这个应用程序中,我成功地显示了一个 XLS 文件,这要归功于谷歌文档查看器并将文件传递给这样的 URL:

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 显示一个空白页面

【问题讨论】:

@DerGol...lum 谢谢!我会尽力 !是的,它仅用于显示文件,无法修改,因此静态和不可变文件没有问题=) 【参考方案1】:

假设你的文件是staticimmutable,你可以把文件放在你的assets文件夹中,然后使用

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

加载到您的 WebView。 我使用这种技术来显示帮助(html 文件)。

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

【讨论】:

我想我有问题,因为我的文件是从网络服务获取的。我保存在我的外部存储中并在我显示它之后。所以我可以把我的文件放在资产文件夹中 然后从存储中读取它...类似于"file://" + your_path + "your_file"。 your_path 应该在文件名之前包含“/”路径分隔符。 可以这样吗? String root = Environment.getExternalStorageDirectory().toString(); wv.loadUrl("file://" + root + "/excel_files/" + excelFile.getName()); 感谢您的帮助 Der Gol...lum 并为误会深表歉意。我会尝试一些其他的可能性 有 Apache POI 扩展。 mysamplecode.com/2011/10/…

以上是关于我们可以在我的应用程序中显示来自设备存储的 xls 文件吗的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的应用程序上显示来自 Firebase 存储的图像?

在我的应用程序中显示 docx、excel、pdf 文件

WPF。显示来自相机设备的视频。性能和资源

如何在ios设备中存储来自url的json数据并在本地使用它

横幅未显示我的身份来自adMob Ionic 3

如何在 QT 中查看和存储来自设备的数据?