博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android打开doc、xlsx、ppt等office文档解决方案
阅读量:2357 次
发布时间:2019-05-10

本文共 2700 字,大约阅读时间需要 9 分钟。

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

查看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显示

原文地址:http://blog.csdn.net/u011791526/article/details/73088768

640?wx_fmt=jpeg

你可能感兴趣的文章
python中json.dumps()和json.dump() 以及 json.loads()和json.load()的区分
查看>>
Python3中打开文件的方式(With open)
查看>>
python中unittest加载测试用例的4种方法
查看>>
iOS中使用RNCryptor对资源文件加密
查看>>
Device Tree编译工具dtc
查看>>
softlockup/hardlockup原理详细介绍
查看>>
项目管理学习笔记之八风险管理过程总结
查看>>
项目管理学习笔记之九采购管理过程总结
查看>>
solaris常用命令总结
查看>>
邮件安全证书(S/MIME),如何申请邮件证书
查看>>
Go语言基础入门--简介
查看>>
Go语言基础入门--变量,类型
查看>>
Go语言基础入门--数组,切片,map
查看>>
Go语言基础入门--if,for,range,switch
查看>>
Go语言基础入门--函数,错误处理
查看>>
VIM 学习系列之基本命令,常用命令
查看>>
轻松搭建安全、轻量、极速、简约的博客Eiblog
查看>>
Golang包管理工具Glide,你值得拥有
查看>>
如何降低白噪声对网站用户体验的影响?
查看>>
【BDTC2016】大数据分析与生态系统论坛:大数据存储、处理技术大比评 百花齐放落地实践大展现
查看>>