Android 微软办公库 (.doc, .docx, .xls, .ppt, 等等)

29

有没有人知道一个可以在Android上运行的好的Java Microsoft Office API?我知道有一个OpenOffice Java API,但是我还没有听说过有人在Android上使用它。

我知道使用意图(intents)是另一个选项,但是各种Android发行版上预装的办公软件查看器有多普遍呢?对于开发者来说,期望用户已经安装了这些查看器合理吗?如果他们没有安装这些应用程序,请求他们安装一个是否合理?


有些设备配备了文档查看器,Galaxy Tab就有,但我不确定有多少设备总共都有。 - FoamyGuy
5个回答

15

由于我们需要显示的大部分文档都已经托管在网络上,因此我们选择使用嵌入式web视图,在使用Google文档查看器打开文档。

但是,我们仍然有一些本地存储的文档无法使用这种方法。对于这些文档,我们的解决方案是依赖现有应用程序的支持。在进一步研究Android后,似乎大多数设备出厂时都装备了某种形式的文档/PDF阅读功能。如果他们没有合适的应用程序,我们会引导他们去应用市场搜索免费的阅读器。


3
现在无法使用。400。出现错误。所请求的URL未在此服务器上找到。这就是我们所知道的全部。 - A Maharaja
如果用户没有互联网连接或需要处理高度敏感的数据文档,则这不是一个选项。PDFTron在这里派上用场。 - Duna

9

很遗憾,Android没有内置的控件来编辑MS Office文件,甚至无法显示它们!这是一个相当大的缺陷,因为iOS内置了显示Office文件的支持(尽管iOS经常会不正确地显示更复杂的文档)。似乎没有足够一致的查看器应用程序可供依赖(它们也可能无法提供您所希望的用户体验)。

如果您想在Android应用程序中显示或编辑docx等文件,则必须嵌入一些第三方代码以添加此功能。我不知道是否有预打包的开源代码可以做到这一点,因此,除非您想自己构建/移植解决方案,否则您需要商业许可证。

正如其他人所指出的,这个领域有一些开源项目,但它们并没有被打包/移植到Android上。如果您成功将它们移植和集成,它们会给您的Android应用下载增加巨大的负担(例如80多兆字节),您还需要为它们添加适合移动设备的用户界面(请参见https://play.google.com/store/apps/details?id=com.andropenoffice&hl=en_GB,这是一个我个人认为不适合/不友好的Android应用程序端口示例)。

我熟悉的解决此问题的SDK之一是基于SmartOffice应用程序的:

https://artifex.com/products-smart-office-overview/

这是一个安全的可嵌入库,支持显示和(可选)编辑 Office 文档。您可以通过sosales@artifex.com联系以获取许可信息。

披露:我的工作之一涉及在 SmartOffice 代码上进行工作。


Joseph,请给我推荐一个演示链接。 - Om Infowave Developers
@OmInfowaveDevelopers http://smartoffice.artifex.com/ 上有指向Google Play和iOS App Store的链接,展示SmartOffice的功能,或者发送邮件至sosales@artifex.com获取评估SDK。 - JosephH
在smartOffice官方网站上没有提供将其集成到应用程序中的文档和SDK。我也没有收到他们联系支持的任何回复。@JosephH - Nainal
@Nainal 我不知道为什么会这样 - 如果你给我发一封电子邮件到我的家庭地址(joseph@heenan.me.uk),我会确保有人与你联系。 - JosephH

7

大多数微软文档查看器都很笨重且昂贵。

如果您想自己创建一个查看器,可以看一下Apache POI


4
Apache POI 在安卓系统上无法使用。 - Jason
是的,在安卓上它不起作用。 - hitesh141
@hitesh141,你能发一个例子吗? - Ronak Khandelwal
@Jason,请问为什么Apache poi在Android上无法工作?能否给出一些解释? - Gowthaman M
它可以在Android上运行,但是你需要花费很多时间来配置它。下载这个项目:https://github.com/andruhon/android5xlsx - Roman Soviak
据我所知,Apache POI 用于创建、读取和更新文档,但如何使用它来查看文档呢? - Nainal

1

一个适合的解决方案可能是使用下面链接中的Jword。它不免费,但易于使用。 http://www.independentsoft.de/jword/index.html

使用该库的方法就像这个示例代码一样简单。

private String docxRead(String filePath) {
    try {
        WordDocument doc = new WordDocument(filePath);
        String text = doc.toText();
        return text;
    }
    catch (Exception e) {
        Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }
    return "";
}    

虽然这理论上回答了问题,但最好在此处包含答案的基本部分,并提供参考链接。 - Bhargav Rao

0
You can use this example for read MS word document file in android application.
I give a link below, you follow this for example.
 <https://github.com/AsposeShowcase/Document_Viewer_and_Converter_for_Android>

And follow below link for Aspose Word library for android.
 <http://www.aspose.com/android/word-component.aspx>

**You Mostly use for this to Read Ms word document.**
I hope, you will using these Library and make you application better.
Best of Luck.


[1]: http://www.aspose.com/android/word-component.aspx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接