妹子我寫代碼很辛苦/(ㄒ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=(輸入你的文檔在服務器中的地址);
如果您對自己的文檔完全沒有安全方面的考慮,建議使用微軟的在線解析,親測可用,谷歌的在國內被封了(沒辦法,攤手)
- WebView urlWebView = (WebView) findViewById(R.id.containWebView);
- urlWebView.setVisibility(View.VISIBLE);
- mLvAttach.setVisibility(View.GONE);
- urlWebView.setWebViewClient(new AppWebViewClients());
- urlWebView.getSettings().setJavaScriptEnabled(true);
- urlWebView.getSettings().setUseWideViewPort(true);
- // https://view.officeapps.live.com/op/view.aspx?src
- urlWebView.loadUrl("http://view.officeapps.live.com/op/view.aspx?src=”文檔在服務器的地址”);
- public class AppWebViewClients extends WebViewClient {
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- // TODO Auto-generated method stub
- view.loadUrl(url);
- return true;
- }
- @Override
- public void onPageFinished(WebView view, String url) {
- // TODO Auto-generated method stub
- super.onPageFinished(view, url);
- }
- }
微軟的測試地址:
查看docx文檔:http://view.officeapps.live.com/op/view.aspx?src=newteach.pbworks.com%2Ff%2Fele%2Bnewsletter.docx
查看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格式(附帶源碼)
