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格式(附帶源碼)

相關文章
相關標籤/搜索