我们可以在我的应用程序中显示来自设备存储的 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】:假设你的文件是static和immutable,你可以把文件放在你的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 存储的图像?