Android打開doc、xlsx、ppt等office文檔解決方案


妹子我寫代碼很辛苦/(ㄒoㄒ)/~~ ,轉載請標明出處哦~http://blog.csdn.net/u011791526/article/details/73088768

 

1、Android端有什么控件可以直接顯示office文檔嗎?

很抱歉沒有,對於ios而言想要顯示office文檔,直接調用控件webview即可。遺憾的是,Android雖然也有webview控件,但是該控件沒有提供此類功能。

 

2、那么想要在Android端顯示office文檔有什么解決方案

①、調用第三方軟件顯示,這需要安卓機上安裝了第三方的office軟件,而且對於特別敏感的office文件,可能會泄露信息,不是特別安全

        http://blog.csdn.net/qq_29678299/article/details/51108342

②、自己解析office文件並自定義控件顯示,此方法避免了調用第三方office軟件帶來的麻煩,但是解析office文檔是一項非常龐大的工作,其開發難度和復雜度類似於開發一個office app,如果只是作為項目的一個功能點,實在太過龐大。

酌情使用

 

③、將office文件轉html格式,使用webview展示,還是同樣的問題,office轉html的工作太過復雜耗時,如果只是作為app的某一個功能點,可能會影響app本身的性能

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

④、使用第三方的在線預覽工具,該方法的解決方法是把想要解析的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

 

3、最優解決方案

①、期待大神仿ios寫一個Android的webview控件可直接顯示office文檔(我猜測是瀏覽器內部對office的解析~)。同理,期待谷歌早日提供一個類似於ioswebview的控件(明明是很重要的功能呀,谷歌為啥一直不提供呢,奇怪)

 

②、求人不如求己,自己實現一套方案吧

根據上文的分析,其實我們可以仿造微軟和谷歌的解決方式

 

即服務端將office文檔顯示在html界面(而不是提供下載),Android端使用webview加載

 

該方法的優點:安全、客戶端不需要寫大量代碼

思路:

1、html界面借助插件展示office文檔(對html了解不深,網上有這類做法)

2、服務端將office文檔轉為html格式,客戶端借助webview顯示

 

office轉html可參考我另外一篇文章 使用POI將office文件轉html格式(附帶源碼)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM