Android打开doc、xlsx、ppt等office文档解决方案

妹子我写代码很辛苦/(ㄒoㄒ)/~~ ,转载请标明出处哦~http://blog.csdn.net/u011791526/article/details/73088768html

 

一、Android端有什么控件能够直接显示office文档吗?java

很抱歉没有,对于ios而言想要显示office文档,直接调用控件webview便可。遗憾的是,Android虽然也有webview控件,可是该控件没有提供此类功能。ios

 

二、那么想要在Android端显示office文档有什么解决方案web

①、调用第三方软件显示,这须要安卓机上安装了第三方的office软件,并且对于特别敏感的office文件,可能会泄露信息,不是特别安全chrome

        http://blog.csdn.net/qq_29678299/article/details/51108342浏览器

②、本身解析office文件并自定义控件显示,此方法避免了调用第三方office软件带来的麻烦,可是解析office文档是一项很是庞大的工做,其开发难度和复杂度相似于开发一个office app,若是只是做为项目的一个功能点,实在太过庞大。安全

酌情使用服务器

 

③、将office文件转html格式,使用webview展现,仍是一样的问题,office转html的工做太过复杂耗时,若是只是做为app的某一个功能点,可能会影响app自己的性能app

       http://blog.csdn.net/yjclsx/article/details/51441632ide

④、使用第三方的在线预览工具,该方法的解决方法是把想要解析的office文档url地址传递给第三方在线解析,而后使用webview显示便可,此方法对于app端来讲确实很是有利,由于app端不须要本身进行任何解析,只是若是将本身文档的url交给第三方,依然存在安全问题

现附上两个在线预览office文档的地址:(浏览器都须要chrome的内核)

        1 google:https://docs.google.com/viewer?url=(输入你的文档在服务器中的地址);

        2 微软:https://view.officeapps.live.com/op/view.aspx?src=(输入你的文档在服务器中的地址);

若是您对本身的文档彻底没有安全方面的考虑,建议使用微软的在线解析,亲测可用,谷歌的在国内被封了(没办法,摊手)

 

[java]  view plain  copy
 
  1. WebView urlWebView = (WebView) findViewById(R.id.containWebView);  
  2.         urlWebView.setVisibility(View.VISIBLE);  
  3.         mLvAttach.setVisibility(View.GONE);  
  4.         urlWebView.setWebViewClient(new AppWebViewClients());  
  5.         urlWebView.getSettings().setJavaScriptEnabled(true);  
  6.         urlWebView.getSettings().setUseWideViewPort(true);  
  7.        // https://view.officeapps.live.com/op/view.aspx?src  
  8.         urlWebView.loadUrl("http://view.officeapps.live.com/op/view.aspx?src=”文档在服务器的地址”);  
  9.    
  10.  public class AppWebViewClients extends WebViewClient {  
  11.   
  12.         @Override  
  13.         public boolean shouldOverrideUrlLoading(WebView view, String url) {  
  14.             // TODO Auto-generated method stub  
  15.             view.loadUrl(url);  
  16.             return true;  
  17.         }  
  18.         @Override  
  19.         public void onPageFinished(WebView view, String url) {  
  20.             // TODO Auto-generated method stub  
  21.             super.onPageFinished(view, url);  
  22.         }  
  23.     }  

 

 

微软的测试地址:

    查看docx文档:http://view.officeapps.live.com/op/view.aspx?src=newteach.pbworks.com%2Ff%2Fele%2Bnewsletter.docx 

    查看xlsx文档:http://view.officeapps.live.com/op/view.aspx?src=http%3A%2F%2Flearn.bankofamerica.com%2Fcontent%2Fexcel%2FWedding_Budget_Planner_Spreadsheet.xlsx

    查看PPT文档:http://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%2fvideo.ch9.ms%2fbuild%2f2011%2fslides%2fTOOL-532T_Sutter.pptx http://www.cnblogs.com/wuhuacong/p/3871991.html http://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%2fvideo.ch9.ms%2fbuild%2f2011%2fslides%2fTOOL-532T_Sutter.pptx http://www.cnblogs.com/wuhuacong/p/3871991.html

 

三、最优解决方案

①、期待大神仿ios写一个Android的webview控件可直接显示office文档(我猜想是浏览器内部对office的解析~)。同理,期待谷歌早日提供一个相似于ioswebview的控件(明明是很重要的功能呀,谷歌为啥一直不提供呢,奇怪)

 

②、求人不如求己,本身实现一套方案吧

根据上文的分析,其实咱们能够仿造微软和谷歌的解决方式

 

即服务端将office文档显示在html界面(而不是提供下载),Android端使用webview加载

 

该方法的优势:安全、客户端不须要写大量代码

思路:

一、html界面借助插件展现office文档(对html了解不深,网上有这类作法)

二、服务端将office文档转为html格式,客户端借助webview显示

 

office转html可参考我另一篇文章 使用POI将office文件转html格式(附带源码)

相关文章
相关标签/搜索