With Office 2007, Microsoft has, without a doubt, made a significant part of these problems "go away". Java developers either put up with it, consoled themselves in a manner highly reminiscent of one of Aesop's Fables by saying that "Office sucks, anyway, why would anyone want to use it?", or simply told their Office-using customers that Java couldn't understand Office because of the Microsoft/Sun lawsuit.ĭurable Execution is a development abstraction that preserves complete application state so that upon host or software failure it can seamlessly migrate execution to another machine.
Various open-source projects stepped in to try and mitigate the situation, such as the POI framework from Apache, for reading and writing Excel documents, or various Java-COM solutions suggested that a Java developer could read and/or write Office files using the same structured storage APIs that Office itself used, but that was hardly sufficient, since now a developer had to figure out the internal structure of the Office document format, itself a fairly complex format, and, of course, completely undocumented.Īll in all, the Java/Office story was, to put it mildly, a pretty ugly situation. Subsequent versions of Office, namely Office 2003, introduced new XML formats unique to itself (such as WordML), which Java developers could use to read or write Office documents, but the formats were not well-documented, and Java developers frequently found themselves learning the WordML format through trial-and-error development. Word, of course, could also read Rich Text Format (RTF) files, and the RTF specification was open and somewhat well-documented. Workarounds to allow Java access to the contents of these files varied wildly from one application to another for example, it was well known that Excel could read comma-separated value (CSV) files, so Java applications that wanted to export data into Excel-friendly format would export it in CSV format (an ugly format if ever there was one). While a genuinely useful approach to take for COM developers (and developers working in COM-aware languages, like Visual Basic, Delphi and C++/ATL), the resulting file contents were inaccessible to any language that didn't "speak COM". Historically, this has always been something of a problem because Office documents (principally Word, Excel, and PowerPoint) were stored in a binary format known to COM developers worldwide as the structured storage format, an intrinsically hierarchical binary format accessed using COM interfaces.
One area of Office/Java interoperability that wasn't covered, however, is probably the oldest means by which Office and Java work together, that of Java applications manipulating Office documents: creating documents, editing them, gathering data out of them, and so on. In the last installment, "Office Rich Client Applications", we talked of using the Office 2007 platform as a baseline from which to build rich client applications that interoperate with Java technologies in a variety of different ways.