1. 程式人生 > >Android開啟doc、xlsx、ppt等office文件解決方案

Android開啟doc、xlsx、ppt等office文件解決方案

1、Android端有什麼控制元件可以直接顯示office文件嗎?

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

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

①、呼叫第三方軟體顯示,這需要安卓機上安裝了第三方的office軟體,而且對於特別敏感的office檔案,可能會洩露資訊,不是特別安全

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

酌情使用

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

④、使用第三方的線上預覽工具,該方法的解決方法是把想要解析的office文件url地址傳遞給第三方線上解析,然後使用webview顯示即可,此方法對於app端來說確實非常有利,因為app端不需要自己進行任何解析,只是如果將自己文件的url交給第三方,依然存在安全問題

現附上兩個線上預覽office文件的地址:(瀏覽器都需要chrome的核心)

如果您對自己的文件完全沒有安全方面的考慮,建議使用微軟的線上解析,親測可用,谷歌的在國內被封了(沒辦法,攤手)

  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.  public class AppWebViewClients extends WebViewClient {  
  10.         @Override  
  11.         public boolean shouldOverrideUrlLoading(WebView view, String url) {  
  12.             // TODO Auto-generated method stub  
  13.             view.loadUrl(url);  
  14.             return true;  
  15.         }  
  16.         @Override  
  17.         public void onPageFinished(WebView view, String url) {  
  18.             // TODO Auto-generated method stub  
  19.             super.onPageFinished(view, url);  
  20.         }  
  21.     }  

微軟的測試地址:

3、最優解決方案

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

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

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

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

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

思路:

1、html介面藉助外掛展示office文件(對html瞭解不深,網上有這類做法)

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

相關推薦

Android開啟docxlsxpptoffice解決方案

1、Android端有什麼控制元件可以直接顯示office文件嗎? 很抱歉沒有,對於ios而言想要顯示office文件,直接呼叫控制元件webview即可。遺憾的是,Android雖然也有webview控制元件,但是該控制元件沒有提供此類功能。 2、那麼想要在Android端顯示office文件有什麼解

利用 jodconverter 和openoffice 結合 把docppt 一系列轉換成pdf

利用 jodconverter 和openoffice 結合 把doc、ppt 等一系列文件轉換成pdf 如沒有安裝 openoffice  請參考 http://blog.csdn.net/zhaokuo719/article/details/7291243 進行安裝和

eclipse開發android滑鼠停留API不顯示幫助解決方案

1.在eclipse中找到一個需要檢視的介面滑鼠放上 2.點選之後會進入下面頁面,點選Change Attached Source.... 3.修改path路徑,改為自己的source路徑選擇自己對應的版本,我的是android-18(比如我的:E:\Program

【apache】Apache 開啟Gzip壓縮——可壓縮jscss靜態

gif level cas onf 啟動 add 註釋 class 大小 關於gzip壓縮的好處我這就不說了,相信你已經知道。進入正題 配置 編輯httpd.conf文件 去掉 #LoadModule headers_module modules/mod_

java中針對safari下載pdfexcelword檔變成exe解決辦法

info atoi 文檔 發現 down 設置 inf 針對 測試 今天在寫一個下載文檔的方法時,測試瀏覽器的兼容性問題,發現在mac自帶的safari瀏覽器中文檔下載後全部變成exe文件,查了很久才發現是自己的下載方法中的Content-type 的設置有關系 當 Co

linux whereis-查找二進制程序代碼相關路徑

手冊 linux命令大全 文件的 情況 指定 spa 推薦 key 就是 推薦:更多Linux 文件查找和比較 命令關註:linux命令大全 whereis命令用來定位指令的二進制程序、源代碼文件和man手冊頁等相關文件的路徑。 whereis命令只能用於程序名的搜索,而

html input="file" 瀏覽時只顯示指定檔案型別 xlsxlsxcsv

<input id="fileSelect" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms

php excel檔案查詢某一列的資料 相容xlsxlsxcsv excel檔案匯入

童鞋要將客戶excel表匯入,然後按照電話群發簡訊,就整了這貨……(o^^o) <?php namespace app\index\controller; use \think\Controller; use PHPExcel_IOFactory; use PHPExcel; cl

企業雲成本浪費高達30%!行雲管家Cloudyn廠商給出解決方案

問題 tex 18C 采購 分析 國內 現在 系統 並且 專業咨詢機構RightScale的一份調研報告顯示,當下的企業級用戶在雲計算支出一項的浪費高達30%。甚至有部分研究人員認為這一數據被低估,因為調查的樣本聚焦於中型以上企業,如果考慮到浪費更為嚴重的小企業,真實的雲資

VSTO 得到Office的選中內容(WordExcelPPTOutlook)

目的:得到在Word、Excel、PPT、Outlook中選中的一段內容。 Word:         private string GetSelectCont()        {            string w = "";            Word.Sele

[格式轉換神器]pdf,jpg,xps轉doc,xls,pptoffice格式

今天公司財務遇到一個問題,同時也是給我出了一個難題(Because之前沒弄過),不過功夫不負有心人,下午14時剛好實現,特寫此部落格以與各位分享(網上各類軟體頗多,自己也下載了好多,耗時耗力的,有些軟體比較坑,下了之後,什麼都沒有異常,直到最後一步的時候,他彈出一個對話方塊:“對不起,未註冊的版本僅提供轉換三

如何在Web頁面上直接開啟編輯建立Office

在安裝Office2003以後,有一個ActiveX控制元件被安裝到了系統中,這個控制元件位於“Program Files/Microsoft Office/OFFICE11/owssupp.dll”。通過這個控制元件,客戶端頁面上的JavaScript就可以啟用本地的Off

Android實現線上預覽office(Word,Pdf,excel,PPT.txt格式)

1.概述 我們都知道,Android原生並沒有提供瀏覽office文件格式的相關Api,在安卓端想要實現線上預覽office文件的功能顯然很是複雜,我們手機安裝QQ瀏覽器時,在手機開啟office文件時會提示如圖, 這就是這篇文章的主角–騰訊X5核心(T

apache poi操作office----java線上預覽txtwordpptexecel,pdf程式碼

在頁面上顯示各種文件中的內容。在servlet中的邏輯 word:  BufferedInputStream bis = null;   URL url = null;   HttpURLConnection httpUrl = null; // 建立連結   u

Oracle 12C 新特性之在線重命名遷移活躍的數據

查看 查詢 存在 data gop ddl ins aux 正在 Oracle 數據庫 12c 版本中對數據文件的遷移或重命名不再需要太多繁瑣的步驟,可以使用 ALTER DATABASE MOVE DATAFILE 這樣的 SQL 語句對數據文件進行在線重命名和移動。而當

作業二:優化購物車:用戶入口:1.將商品的信息存到中;2.將已經購買的商品余額記錄存到中。商家入口:1.可以添加商品;2.可以修改商品的價格

car brush 薪水 blog and not else iphone client #Author:AXIN #Date:2017/5/22 12:04 #優化版的購物車 #用戶入口: #1.商品的信息存到文件裏 #2.已購商品,余額記錄 #商家入口: #1.可以添

共享表空間與獨立表空間frm,MYD,MYI.idb,par說明

適合 數據 sla back 磁盤空間 ble .cn per 會有 一、共享表空間與獨立表空間MySQL5.5默認是共享表空間 ,5.6中,默認是獨立表空間。共享表空間:ibdata1是InnoDB的共享表空間,默認配置是把全部表空間存放到ibdata1中,因此而造成ib

Redis命令行和配置redis.windows.conf

存在 默認 localhost 字符串 con all get bsp 多行 一、Redis發送命令的兩種方式 redis-cli -h localhost -p 6379redis-cli ping 返回pong 證明正常 二、命令返回值 1、狀態回復,如ping命令

json和xml封裝數據數據緩存到

用戶 lena 數據緩存 完全 數據類型 lin print 函數 response 一、APP的通信格式之xml xml:擴展標記語言,可以用來標記數據,定義數據類型,是一種允許用戶對自己標記語言進行定義的源語言。XML格式統一,擴平臺語言,非常適合數據傳輸和通信,業界

後綴名   linux 和windows 互傳 後綴名

文件後綴名 、linux 和windows 互傳文件 文件後綴名文件後綴名 、linux 和windows 互傳文件文件後綴名在linux 下面 命令 文件 都區分大小寫大寫的 LS 就識別不了 ls 這個命令LANG=en 就顯示成英文linux 和windows 互傳文件首相只能使用遠程工具xs