CSC/ECE 517 Fall 2010/ch7 S36 JB
O-O packages for implementing office suite APIs
Introduction
Office suite software has been around now for many years. The first was Microsoft Office, released in 1989, which included a word processor, a spreadsheet, and a presentation program. These were separate programs which were integrated together into a single package. For many years, Microsoft has remained the dominant player in the game, but not the only one. Others have come (and sometimes gone) that have had their own popularity. Although all of them have tried to provide every function they thought their users might need and/or want, none of them are perfect. Many users have identified shortcomings or wished for special features that are not available in their favorite office suites. Some of the suite providers have recognized this and now offer Application Interfaces (APIs) that allow people to access core functions of their software from outside of the program, using separate scripts or programs. This chapter is a review of the APIs available in various suites and some of the packages that are available to different Object Oriented (OO) languages for implementing this API.
The Office Suites
There are many different office suites. Below we review a few of the more popular ones that can be easily found today.
OpenOffice
OpenOffice is a free office suite provided as Open-source Software (OSS) by Oracle (previously by Sun Microsystems and before that by Star Division as Star Office). It is available for many different operating systems on many different platforms.
API
Through the OpenOffice API, a user can manipulate files created by OpenOffice using the language of their choice. OpenOffice uses the Universal Network Objects (UNO) interface to provide this functionality.
Language Support
In addition to supporting several non-OO languages, OpenOffice supports the following OO languages:
- Perl
- Java
- C++
- Python
- Others
Google Docs
Google Docs is also a free office suite. It follows the recent trend of transferring more executables online, making them easily available from anywhere with an Internet connection.
API
According to the Google Docs Developer's Guide, "The Google Documents List Data API allows client applications to request a list of a user's documents, query the content of a user's documents, upload/download documents, modify the sharing permissions, view the revision history, and file documents within folders."
Language Support
- Java
- .Net
- PHP
- Python
Microsoft Word
Microsoft has long had a reputation for being closed and anti-competitive and entered the API game very late. It is now trying to catch up with the big boys.
API
The Microsoft Office API provides support for accessing its documents through external scripts and programs.
Language Support
- VBA
- .Net?
Conclusion
Not all APIs are created equal! Some office suites have been built around their APIs, while others put them in as afterthoughts. A well-defined API can be used by a large number of different programming languages, allows many different file formats to be modified, and provides many ways to manipulate those files.