Saturday, September 12, 2009

 

OpenOffice前途惨淡,我们还有其它选择吗?

随着甲骨文收购SUN,OpenOffice的前景让粉丝们都捏了一把汗。也随着开源的大行其道,更多人开始关注开源office软件,这次就来盘点下开源office软件。
OpenOffice.org 是一套跨平台的办公室软件套件,能在 Windows、Linux、MacOS X (X11)、和 Solaris 等操作系统上执行。它与各个主要的办公室软件套件兼容。OpenOffice.org 是自由软件,任何人都可以免费下载、使用、及推广它。



OpenOffice.org现在的最新版本是OpenOffice.org 3。OpenOffice.org 3是一个逐渐进化的而不是革命性的产品,它是OpenOffice.org 2升级的产物。与之前的版本相比,OpenOffice.org 3并没有进行彻底的改动。

OpenOffice.org 3的最大变化实际上是很多小变化的集合。举例来说,Mac用户很乐意知道OpenOffice.org 3现在已经是本地应用程序了。该套件中的所有的应用都可以通过一个简单的统一界面或者系统托盘启动器启动,后者同时也可以作为该套件的加速器。 OpenOffice.org 3的整性能明显要好于它的上一代版本 ,即使是不使用应用程序启动加速器也是如此。

OpenOffice.org 3新增的其它功能包括方程求解器和计算器工作簿共享功能;Impress支持多个监控器;支持VBA宏。

你可以使用OpenOffice.org 3直接打开Office 2007的OOXML格式文件,但是你却不能将文件保存为OOXML格式,因为已有的OOXML文件中的某些东西似乎不能实现正确转化。比如,如果某个文 件在同一行包含多种言语的字符(比如英语和日语),那么在导入时它的行距就会遭到破坏。不过,如果你将该文件保存为Word 2003文件格式并导入就不会有任何问题。

OpenOffice的一个我一直非常喜欢得功能就是能够直接输入PDF格式,而不需要一个插件或虚拟打印机驱动程序,同时还具备加密和表格功能。在OpenOffice.org 3中,PDF输入器的选择范围稍微有些扩大;最大的升级就是支持PDF/A。

不过,OpenOffice.org 3的一些小问题仍然让我很苦恼。例如:文件窗口底部的各种工具不是那么容易让人理解---你也许永远不会知道标有STD的小方块或者它旁边只标有星号的小 方块是干什么用的,除非你参阅使用手册。这一点其实非常不方便,当你开发一个供普通用户使用的软件时,易用性非常重要,使用手册是最后才被用到的手段。

记住,OpenOffice.org并不是唯一的。GoOO与OpenOffice.org使用的源代码库相同,但是它在速度上面进 行了一些优化。在日常工作中,我一般交替使用GoOO 和OpenOffice.org,因为二者的文件格式完全兼容,而且前者的速度和稳定性都稍快。PortableApps版本的 OpenOffice.org可以在可移动驱动器上运行,因而可以用作该软件的一种试用方式,省去了正式安装带来的一些问题。

IBM Lotus Symphony


IBM Lotus Symphony 是一组集文字处理、电子表格和演示幻灯片于一身的免费办公套件。它支持开放文档格式(Open Document Format,简称ODF)。ODF最大的优势在于其可开放性和可继承性,基于ODF格式的文档在许多年以后,仍然可以为最新版的任意一款遵循标准的办公 软件打开使用。与此同时,IBM Lotus Symphony 兼容Microsoft Office格式。具备丰富功能的生产力工具,直观的用户界面,并能与各种文档兼容。无论在家里、学校或公司都可以免费使用。


虽然也是基于OpenOffice.org的代码库,但是IBM Lotus Symphony却截然不同。最近推出的IBM Lotus Symphony使得濒临死亡的Lotus Symphony品牌重新焕发了活力。它包含的功能要比OpenOffice.org少得多---该套件之包含三个主要的应用软件---但其中的每个软件 都值得我们关注。

IBM Lotus Symphony的三个应用软件正好满足了大多数人使用办公套件所要完成的工作:写文件、创建电子表格并组装演示文稿。但是,这并不意味该套件在以后不会 增加其它新的功能,并且它能够自动检查新的组件和对于现有软件的升级。IBM Lotus Symphony不支持OOXML,因此不能实现与Office 2007的转换,目前似乎也没有一个插件能够胜任这项工作。

使 用KOffice套件,用户能够在一个标签式界面上运行所有的应用程序。IBM替换了OpenOffice.org默认的图标和工具,取而代之的是一套更 好、更精致的元素集,其中包括一套用于文本属性的可停靠侧边面板,这在原始程序中是不具备的。也就是说,每一个应用中的功能组合与OpenOffice本 身几乎是完全一样的。

很显然,IBM想要将Symphony变成一个后续开发的新起点和框架,无论是于OpenOffice保持 同步还是分离。从Symphony的插件集上你就能明白这一点,虽然它效仿了OpenOffice.org的插件集,但是这些插件是完全不同的,因为 OpenOffice.org的插件不能用于Symphony,反之亦然。虽然Symphony目前没有太多可用的插件,不过仅有的一些全部都是精品并且 非常有用,比如有个插件能够将演示文稿输出为单独的Flash文件。

StarOffice


StarOffice是太阳微系统公司(Sun Microsystems)所属的专有办公软件套件。它原先由StarDivision公司开发,1999年8月被Sun收购。该软件套件的源代码于 2007年7月释出,衍生出一个自由开放的开源办公软件,叫做OpenOffice.org;StarOffice的后继版本皆基于 OpenOffice.org,并带有另外的专有组件。

StarOffice和原始的OpenOffice.org从外 面看几乎没有任何差别。启动之后,除了一些有关商标的改变外,你所看到的界面是完全相同的---甚至在经过一些深入得比较之后,你会发现二者的功能集也是 相同的。那么,你花钱来购买StarOffice的意义何在?

答案包括三个方面:支持、捆绑和部署。正如Canonical向 Ubuntu用户提供付费支持一样,Sun也对StarOffice提供同样的技术支持。具体的支持项目则要视你所使用的版本而定。下载版和标准版都配有 最长为60天的技术支持;而按照每台电脑进行授权并配备额外部署工具的企业版,使用的则是一个单独的支持合同。

在应用程序捆绑方 面,StarOffice预装了开源的Thunderbird邮件客户端和Lightning日程表,如果您选择购买标准或企业版。而使用下载版本的客户 则需要手动添加这些组件,这与原始的OpenOffice.org在下在和配置上没有任何本质上的差别。

此外,企业版的StarOffice还包含一些其它版本不具备的功能,其中就包括微软Office宏转换工具(OpenOffice.org可以让你按原样运行VBA宏,但却不能将它们转换为OpenOffice.org本身的宏语言)和NetBeans扩展套件。

Sun公司对OpenOffice.org生态系统做出的重大贡献,除了StarOffice本身以外,那就是它为该系统开发了众多的实用插件。PDF 导入和编辑扩展对于基本的文字或格式调整非常有用,但对于更加高级的处理却不是非常适用。有些PDF文件---其中包括用OpenOffice本身生成的 文件---不能实现导入。博客发布扩建能够与所有主要的博客API---WordPress、Movable Type和Metaweblog兼容,但是它提供的功能与专业的博客工具相比,可以说是微不足道的。

就我个人而言,我特别喜欢MediaWiki扩展,它可让你在使用MediaWiki软件的网站(比如Wikipedia)上直接进行编辑和发布,而无需通晓MediaWiki标记语言。

KOffice


文本编辑器 KOffice 是一组办公室套装软件适于用K桌面环境(KDE)环境之上,所有的套件都是采用开放源代码架构。KOffice最显著的特定之一就是所包含的应用软件范围 最广,种类最多。KOffice 2的第三个测试版已经被证明稳定性非常好,不过仅限于Linux操作系统。不过,非官方的Macintosh版KOffice 2已经出现,并且有一些项目正在研究将KDE和KDE兼容的应用程序引入Windows环境中,但是到目前为止,能够在Windows环境下使用的唯一一 个KOffice应用就是数据库应用Kexi。

为了得到最大的兼容性,我在Kubuntu下尝试了KOffice 下,Kubuntu软件包中自带KOffice。并非所有的Linux发行版都包含KOffice。请注意,虽然KOffice在Gnome或KDE下都 能运行,但是如果你要得到最好的体验最好使用后者。每一个单独的KOffice应用都可以独立运行,或者在KOffice Workspace框架之内,所有的应用以一个标签式的界面运行。

除了包含文字处理、电子表格、演示文稿和数据库系统之 外,KOffice还包含三个图形处理工具---流程图应用、矢量绘图软件和光栅设计应用---项目管理工具、报表开发工具、制图绘图工具和数学公式编辑 器。这对于那些需要使用这些功能的用户来说,KOffice是一个很好的选择,不过前提是他们要具备运行KOffice的平台。

广泛的工具集并不是KOffice的唯一优点。这些应用本身在展示和布局方面汇集了开发人员相当多的创意---它们在导航方面非常容易上手,而且 Krita中的面板以及图形编辑软件在布局方面是一致的。Krita有一件事情一直困扰我:它支持CMYK色彩空间,但实际上却没有CMYK模式的颜色选 择器。

此外,KOffice在跨格式上还存在一些问题,不过我觉得这很可能是因为试用版原因。我在Word 2003种创建了一个文件,然后用OpenOffice将该文件保存为ODF格式,最后用KOffice打开该文件,发向有一些格式发生了错位。当我用 KOffice重新打开原始的Word 2003文件时,没有出现任何问题。并且,通过KOffice 或OpenOffice创建的文件在保存和打开时也没有出现问题。

AbiWord
上述开源办公软件各个都是名声响当当,不过AbiWord也确实值得一提。abiword是一个自由的文字处理程式类似微软 文字处理软件──Mcrosoft®word,它适用于各种各样的文字处理任务,由广大的开源社区用户进行后续开发和维护。AbiWord的功能库没有 OpenOffice.org那样广泛---它只是一个字处理器,而不是一个功能完整的应用套件。不过,AbiWord却引起了很多人的关注和喜爱,因为 它仅仅占用15MB左右的硬盘空间,并且运新速度惊人。

顾名思义,AbiWord基本上是经典的Microsoft Word核心功能的克隆。你平常所使用的几乎所有的Word功能---封、报表、邮件合并、修改跟踪---都可以在这里找到。AbiWord并不适合企业 级专业人员使用,但是对于那些工作要求不是那么严格的学生和个人来说,AbiWord足够了。AbiWord的另一个优点就是它也可以跨平台,所以如果你 刚开始的时候是在Windows上使用它,那么在Linux上你也完全能够使用。

经典的Word文档都可以用AbiWord打 开,而且AbiWord也具备打开OpenOffice和ODF格式文件的插件,不过对于它目前尚不支持Office 2007 OOXML。但是,并不是一切都非常完美,例如,当我试图打开一个包含多种语言(英文和日语)时,非英文文本没有正确显示。鉴于此, AbiWord最好用于创建全新的文件,而不是处理原有文件。

此外,AbiWord的一些小功能非常招人喜欢。比如,它的 HTML导出功能可以让你使用base64编码封装任何图像文件包括HTML文件本身。AbiWord第三方插件功能丰富,大大扩展了该软件的功能。最 后,你可以在PortableApps包中运行AbiWord。

Google Docs


谷歌办公套件,类似于微软的Office的一套在线办公软件,可以处理和搜索文档、表格、幻灯片,并可以通过网络和他人分享,有google的帐号就能使用.

Google 文件是基于网络的文字处理和电子表格程序,可提高协作效率。有了此程序,您就可以把文档放在网上。这样,您团队中的其他人就可以实时在线对文档进行编辑和 更新,免去您线下发送相同版本的文档并根据每个不同的回复对相同文档进行反复更新。多名用户可同时在线更改文件,并可以实时看到其他成员所作的编辑。系统 会自动为您保存每次的修订,这样您就可以看出来谁在何时作了什么修改,并可恢复到之前任何一个时间点的旧版本。

文件可以很方便地从 Google 文件导入及导出。若要从保存在您计算机上的现有文件开始操作,只要上传该文档,并从您上次停止的地方继续进行即可。要离线使用文档或将其作为附件分发,只 需以最适合您的格式在您自己的计算机上保存一份 Google 文件副本即可。无论您是上传还是下载文件,所有的格式都会予以保留。

就像 Google 的其他网络服务一样,您不需要下载或安装另外的软件。您只需一台接入互联网的计算机及可使用 Google 文件的标准浏览器即可。

Labels: ,


 

OpenOffice.org宏学习笔记

http://www.vbafan.com/

从网上下载了一些关于OOs宏编程的电子书,先从Learn OpenOffice.org Spreadsheet Macro Programming(PACKT 出版,作者为Dr. Mark Alexander Bain)开始学习。

这里所有的内容都是基于Windows XP下的OpenOffice3.1版。没有安装中文版,所以菜单和对话框与中文版有些区别。

使用OOs Basic IDE

开始学习编写宏之前必需学会IDE的使用方法。这里的Basic是表示使用OOs Basic语言来编程。

和MS Excel一样,点击菜单“Tools”->“Macro”->“Organize Macros”->“OpenOffice.org Basic”可以打开IDE窗口,如下图。

在上图中我们还可以看到另外三个选项:

也就意味着除了Basic语言外,我们还可以选择另外三种语言来对OOs编程。

点击“OpenOffice.org Basic…”后,显示“OpenOffice.org Basic Macros”对话框,如下图。

在这里我们可以选择创建宏的位置,提供了三个选择:

  1. My Macros:如果我们希望所有的工作表都可以使用这个宏,可以保存在这个地方。这个宏对仅对当前用户有效,宏文件保存在Documents and Settings\current username\Application Data\OpenOffice.org\3\User\Basic下面。
  2. OpenOffice.org:如果你希望所有的用户都可以使用这个宏,可以保存在这个地方。但是当点击这个选项时,我们可以看到“New”按钮是灰色的,表示不能直接在这里创建宏。后面再介绍怎样将自定义的宏放入到这个目录供所有的用户使用。
  3. 当前工作表:将宏嵌入到工作表中的好处是你可以将文件连同宏一起复制或发送给其他人使用。

选择当前工作表Untitled 1,然后单击“New”按钮,将显示“New Module”对话框,如下图:


输入模块名称例如“ModNew”,然后单击“OK”按钮,就打开IDE窗口,如下图。在代码窗口中,OOs已经自动创建了一个Main过程,我们也可以将它删除,它的主要作用是展示一个简单的代码结构给我们。

IDE的工具

现在简单的介绍一下工具栏上的各个图标,图标标识如下图:

图标 1:运行(Run)按钮,点击这个按钮将运行模块中的第一个过程,而不是像MS Excel一样运行光标所在的过程。如果需要运行指定的过程,需要点击“Select Macro”按钮来选择需要运行的过程。
图标 2:停止(Stop)按钮,运行过程中点击这个按钮将停止代码运行而进入到编辑状态。
图标 3:逐过程(Step Over)按钮,逐句运行代码,当运行到调用的过程或函数时,将该过程和函数作为单个语句运行,然后直接运行后一个语句。
图标 4:逐语句(Step Into)按钮,逐句运行代码,当运行到调用的过程或函数时,代码将逐句运行过程或函数的每一个语句。
图标 5;跳出(Step Out)按钮,在调用的过程或函数中,如果不希望逐句运行每一个语句,点击此按钮可以完成该过程或函数而直接跳到该过程或函数的后一个语句。
图标 6:设置或取消断点,点击此按钮,将设置光标所在的行设置断点或取消断点。也可以双击指定行代码区左边的区域设置该行为断点,再次双击断点标记则取消断点。
图标 7:管理断点的对话框。点击此按钮,将显示如下图的对话框,在该对话框中可以添加或取消断点。在Breakpoints下的文本框中输入“#”并紧接着行号,如#12,然后单击“New”按钮,再点击“OK”按钮关闭对话框,则可在指定行添加断点。

图标 8:设置监视。在代码中选择指定变量,单击此按钮,则可以在监视窗口中添加对该变量的运行中的监视。或者在监视窗口中的文本框中输入变量,然后按Enter键也可添加监视变量。

图标 A:Object Catalog(对象目录),点击此按钮将显示Objects对话框,可以选择指定的过程双击即可打开该过程的代码窗口。

图标 B:Select Macro(选择宏),点击此按钮将显示OpenOffice.org Basic Macros对话框,可以运行、编辑或删除指定的宏。
图标 C: Select Module(选择模块),点击此按钮将显示OpenOffice.org Basic Macro Organizer对话框,你可以发现这个对话框中有三个标签页,Modules(模块)、Dialogs(对话框)、Libraries(库)。以后再 介绍Modules和Libraries。


在IDE中设计Dialogs

在宏中可以使用对话框提供一个用户界面,这里简单地介绍一下怎样在IDE中设计Dialogs。
首先打开OpenOffice.org Basic Macro Organizer对话框,然后选择Dialogs标签页。然后选择你需要保存这个对话框的库。如下图:

例如选择文档Untitiled 1的Standard库,单击New按钮,将弹出New Dialog对话框要求输入名称,在输入一个有意义的名称后点击”Edit“按钮即可进入对话框的设计窗口。

OOs提供了丰富的工具箱以供创建各种控件。点击其中一个控件,例如Textbox,在Dialog上拖动鼠标则可创建文本框。

选择文本框,单击右键弹出菜单“Properties”打开属性窗口,其中General标签页设置文本框的外观和内容,Events则可设置文本的事件过程。对话框的详细以后再介绍。

总的来说,相对MS Excel的IDE来说,OOS的IDE有些简单,尤其是调试。OOs仅提供了一个监视(Watch)窗口和过程堆栈(Call)窗口,而下面这些功能是OOs所缺少的:

另外对于宏和代码窗口的操作也不太方便。


使用库(Library)

我们知道宏被保存在模块中,而模块本身被保存在库中。库可以在以下三个位置:

当我们创建模块时,OOs已经帮我们创建了一个叫做Standard的库,我们不能删除它或将它改名。一般来说,我们可以使用OOo的标准库来满足我们大部分的要求。但是如果我们需要更有效地管理我们的模块或者需要一个多用户的环境,那么创建自己的库是必要的。

我们可以使用OOo Basic Organizer来创建自己的库,单击Tools -> Macros -> Organize Dialogs打开OOo Basic Macro Organizer对话框,然后选择Libraries标签页。选择库保存的位置,我们可以看到库列表中只有Standard库,如图:

单击“New…”按钮,弹出“New Library”对话框,输入库的名称,如图:

然后单击“OK”按钮即可在库列表中添加自定义的库。如图:

选择“Modules”标签页,我们就可以在自定义库中创建模块了,如图:

我们还可以拖动模块在库之间移动,如图。不过好像不能将相同名称的模块移动到另外一个库中。

在多用户环境中使用库

前面我们在My Macros位置创建了myLib库,这个库可以在下面这个路径找到:
C:\Documents and Settings\username\Application Data\OpenOffice.org\3\user\basic\myLib
这个目录一般包括下面这几个文件,另外还包括以我们自己创建的模块为名称的xba文件,如图:

这些文件其实都是一些XML格式的文件。

导入别人的库很简单,打开OOs Basic Macro Organizer对话框,选择“Libraries”标签页和并选择导入的位置例如当前文档,然后单击“Import”按钮,将显示“Import Libraries”文件浏览窗口,然后选择需要导入的库的位置,例如如图的MyLib库。

选择需要导入的xlb文件,点击“OK”按钮,然后弹出“Import Libraries”对话框提供一些导入的选项。


单击“OK”按钮,则可以将该库以及该库下所有的模块导入指定的位置,如图:


以Insert As Reference导入的库显示如图:

如果这个库是以单个电子表格发布,可以同样在“Import Libraries”文件浏览窗口中选择电子表格文件,如图:

在接着显示的“Import Libraries”对话框中选择需要导入的库,如图:

如果该位置已经存在相同名称的库而对话框中没有选择覆盖选项,则会弹出如下图的提示框。

如果新建文档中没有Standard库,则可以导入Standard库。但是如果已经存在Standard库,并且在“Import Libraries”对话框中选择覆盖选项,仍然不能导入别人命名为Standard的库,将显示如下提示框。

如果我们需要分发自己的库,可以使用“Export”功能,在Organizer对话框的“Libraries”标签页中,选择需要导出的库,单击“Export”按钮,显示“Export Basic Library”对话框,提供两个导出方式,如图:

一个是以Basic Library库方式,点击“OK”按钮后,弹出“Export as BASIC library”文件夹浏览窗口以选择导出的位置。

另外一个是以Extension方式,点击“OK”按钮后,弹出“Export library as extension”文件浏览窗口以保存extersion文件。

在OpenOffice.org Macros位置添加库

在My Macros位置保存库,只能供当前用户使用,如果其它人使用的话,则需要提供复制文件,这样不利于控制文件版本,如果以链接形式导入库,又不能控制文件被有意的修改或删除。
前面说过OpenOffice.org Macros位置保存库可以给所有的用户使用,但是在Organizer对话框中,我们发现Import按钮是不可用的。

前面说过,一个库保存在一个文件夹下,而这个文件夹包含两个xlb文件分别为模块和对话框的索引,另外这个文件夹中包含一个或多个xba文件,这些是模块定义文件,包含宏或对话框的代码。

因此我们可以将自定义库的文件夹直接复制到OpenOffice.org Macros位置下:
C:\Program Files\OpenOffice.org 3\Basis\share\basic

这个时候在Organizer对话框中仍然不能显示自定义的库。我们还需要修改上面这个目录下的xlc文件,在这个目录下有两个xlc文件,这两个文件都是xml格式,包含库和对话框列表。
script.xlc
dialog.xlc

用文本编辑器打开,然后再最后一行之前也就是之前添加下面的内容。

如图:

保存文件,然后重新打开OpenOffice.org Calc,就可以在Organizer对话框中看到自定义的库。

注意:我根据上面的操作修改script.xlc文件后,仍然在Organizer对话框中不能显示自定义的库,很奇怪,不知是否还有其它的地方需要设置。
另外,书上说在Organizer对话框的Module标签页中可以通过单击(可能需要多次)指定模块来修改模块名称,但实际上也是不能实现。



Convert Excel VBA to OpenOffice Basic:

http://www.business-spreadsheets.com/vba2oo.asp


VBA - OpenOffice.org Wiki: http://wiki.services.openoffice.org/wiki/VBA

In Chinese: http://wiki.services.openoffice.org/wiki/VBA_zh

Labels: , ,


This page is powered by Blogger. Isn't yours?