我已将excel文件下载到sdcard。想要在我的应用程序中打开该文件并进行处理。 是否有任何方式或任何意图在Android中打开excel文件。我
答案 0 :(得分:9)
使用下面提到的代码并尝试:
File file = new File(Environment.getExternalStorageDirectory()+ "/filepath/" + filename);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),"application/vnd.ms-excel");
startActivity(intent);
答案 1 :(得分:2)
使用这段代码可用于打开任意文件(不仅仅是Excel)。
一般的想法是基于Intent
可以处理它的文件mime类型,然后启动那些Intent
。可以肯定的是,系统可能没有任何意图来处理它,或者可能有几个Intent。无论如何这里的总体方向:
获取给定文件名的mime类型
public String getMimeType(String filename)
{
String extension = FileUtils.getExtension(filename);
// Let's check the official map first. Webkit has a nice extension-to-MIME map.
// Be sure to remove the first character from the extension, which is the "." character.
if (extension.length() > 0)
{
String webkitMimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.substring(1));
if (webkitMimeType != null)
return webkitMimeType;
}
return "*/*";
}
然后获取将处理给定mime类型的默认意图
public Intent getDefaultViewIntent(Uri uri)
{
PackageManager pm = this.getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW);
// Let's probe the intent exactly in the same way as the VIEW action
String name=(new File(uri.getPath())).getName();
intent.setDataAndType(uri, this.getMimeType(name));
final List<ResolveInfo> lri = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
if(lri.size() > 0)
return intent;
return null;
}
最后一步是Intent
getDefaultViewIntent()
答案 2 :(得分:1)
Uri path = Uri.fromFile(file);
Intent excelIntent = new Intent(Intent.ACTION_VIEW);
excelIntent.setDataAndType(path , "application/vnd.ms-excel");
excelIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
startActivity(excelIntent);
} catch (ActivityNotFoundException e) {
Toast.makeText(EmptyBlindDocumentShow.this,"No Application available to viewExcel", Toast.LENGTH_SHORT).show();
}
或更多参考点击此处http://androiddhina.blogspot.in/2015/07/how-to-view-excel-in-android-application.html
答案 3 :(得分:0)
你能详细说明吗? 如果你想使用File从SD卡读取excel文件,这里是代码
File root = Environment.getExternalStorageDirectory();
File excelFile = new File(root, "filename.xlsx");
答案 4 :(得分:0)
不确定它是否适用于Android(并且它可能对您所需的内容有所帮助),但我想我会列出Apache POI - 用于操作Microsoft Office文档的Java API,包括Excel。
答案 5 :(得分:0)
尝试一下:
public void ouvrir(View view) {
String csvFile = "myData.xls";
File yourDir = new File(Environment.getExternalStorageDirectory()+ "/CHETEHOUNA/" + csvFile);
String davUrl = "ms-excel:ofv|u|" + yourDir.toString();
Uri uri = Uri.parse(davUrl);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}