You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by Blair Neumann <Bl...@microsoft.com> on 2009/07/29 20:37:25 UTC

Issues with Open XML in Office 2008 for Mac SP2

Hello Dave Fisher and other POI contributors.

Pat McMillan forwarded email from Dave Fisher describing the Apache POI project’s concerns about an issue in Office 2008 for Mac SP2, concerns that we share. This email is a response to Dave Fisher's earlier correspondence.

We are aware of a serious bug in Office 2008 for Mac SP2 version 12.2.0 causing some Open XML files to fail to open in Office 2008 SP2. This bug is affecting Open XML files from a variety of sources including Office for Windows, Office for Mac, and the Apache POI project. We understand the problem and are working to release a version 12.2.1 of Office 2008 that addresses this issue in August.

A few points from Dave Fisher's mail should be addressed.

>> the Apache POI project has adjusted code to produce "MS-compatible OOXML by adding docProps/app.xml with "Microsoft Excel". We've done similar for DOCX files. This will allow users of future versions of Apache POI to produce OOXML documents that will work with Office 2008 for Mac SP2.

This is not the best long-term solution, though we understand that it may be an effective short-term response to a bug in Office 2008 for Mac version 12.2.0. This isn't about producing "MS-compatible" Open XML but is rather a workaround for a short-term bug. Rather than asserting that Apache POI files are written by Microsoft, we hope that your long-term guidance will be to recommend that affected Office 2008 for Mac users use version 12.2.1 or later (or version 12.1.9 or earlier) with files written by Apache POI.

>> In our understanding of the standard docProps/app.xml is optional.

Our understanding also. An extended properties part (such as app.xml, which happens to be what we call it) is indeed optional as stated in ECMA-376, Part 4, Section 7.2, "If all extended property elements are omitted then the extended properties part may be excluded from a document."

>> If this [the Application tag] were required by the standard then we think this would mean that the proper value for Apache POI created documents would to be "Apache POI" and not "Microsoft Excel"

Our understanding also. Related to my discussion above, we believe that an Application value "Apache POI" is appropriate.

>> we expect that Microsoft will return to compliance with ISO standard 29500 as promised.

To be clear, Office 2008 for Mac conforms to ECMA-376 and does not yet conform to ISO/IEC 29500. The current situation is a bug in our ECMA-376 implementation and will be remedied as soon as possible.

Warm regards.
 -Blair.

Blair Neumann
Program Manager, Macintosh Business Unit
blair.neumann@microsoft.com
________________________________


Re: Issues with Open XML in Office 2008 for Mac SP2

Posted by Yegor Kozlov <ye...@dinom.ru>.
The Application setting "Apache POI" makes sense for all OOXML packages produced by Apache POI.
I changed XSSF and XWPF to set it to "Apache POI" instead of "Microsoft Excel" and "Microsoft Office Word".

The AppVersion property can is not that important and can be omitted.

Excel 2007 and OpenOffice 3.1 have no problems opening such files.
Leif, would you please do the final check in Mac Excel 2008? The fix was committed in r802539.

Regards,
Yegor

> On 7/30/09 12:19 PM, "David Fisher" <df...@jmlafferty.com> wrote:
>> As a project we should decide if -
>>
>> (a) It is safe to make the Application setting "Apache POI". A test
>> would be to successfully open an XSSF file with consumers other than
>> Excel 12.2.0. This includes OpenOffice 3.0.
>>
>> (b) If it is safe then I propose that we set the Application to
>> "Apache POI" and the AppVersion to the poi version - eg. "3.5-
>> beta7-20090731"
>>
>> This is worth a discussion. Please respond if you have an opinion.
>>
> 
> I did some experimenting with the newly release Excel 2008 12.2.1.  Here's
> what I've found related to (b) above:
> 
> The following works on both Mac (12.2.1) /Windows Excel (12.0.6425.1000):
> 
> XSSFWorkbook wb = new XSSFWorkbook();
> POIXMLProperties.ExtendedProperties ext =
> wb.getProperties().getExtendedProperties();
> ext.getUnderlyingProperties().setApplication("Apache POI");
> ext.getUnderlyingProperties().setAppVersion("3.5");
> 
> This DOES NOT WORK on either version of Excel (mac or windows)
> 
> XSSFWorkbook wb = new XSSFWorkbook();
> POIXMLProperties.ExtendedProperties ext =
> wb.getProperties().getExtendedProperties();
> ext.getUnderlyingProperties().setApplication("Apache POI");
> ext.getUnderlyingProperties().setAppVersion("3.5-beta-7020090731");
> 
> After some experimenting, it seems that anything in the AppVersion field
> except a digit or a "." causes the files to become unreadable by Excel.
> i.e. 3.5.5 works, but 3.5.beta7 does not.  Also, it only allows two "."
> values.  So, 3.5.5 works, but 3.5.5.0 does not.
> 
> I tried the following variations. All of the results were the SAME for both
> windows/mac excel, which is nice.  OpenOffice 3.1 could open every one of
> the variations.
> 
> 3.5-beta7 (excel-NO) (openoffice-OK)
> 3-5 (excel-NO) (openoffice-OK)
> 3.5.beta7 (excel-NO) (openoffice-OK)
> 3.5.b (excel-NO) (openoffice-OK)
> 3.5.0.20090731 (excel-NO) (openoffice-OK)
> 3.5.0.1 (excel-NO) (openoffice-OK)
> 
> 3.5 (excel-OK) (openoffice-OK)
> 3.5.0 (excel-OK) (openoffice-OK)
> 3.5.20090731 (excel-OK) (openoffice-OK)
> 
> According to the ECMA-376 Second Edition docs:
> 
> 22.2.2.1 Application (Application Name)
> This element specifies the name of the application that created this
> document. 
> The possible values for this element are defined by the W3C XML Schema
> string datatype. 
> 
> 22.2.2.2 AppVersion (Application Version)
> This element specifies the version of the application which produced this
> document. 
> The content of this element shall be of the form XX.YYYY where X and Y
> represent numerical values, or the document shall be considered
> non-conformant. 
> [Note: The contents of this element do not represent absolute values, but
> rather qualify the contents of the Application element to differentiate
> between different versions of the same producer. Applications should use
> this information in an informative manner only (as document metadata). end
> note]  
> The possible values for this element are defined by the W3C XML Schema
> string datatype.
> 
> Hope that helps,
> --Leif
> 
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
> For additional commands, e-mail: dev-help@poi.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


Re: Issues with Open XML in Office 2008 for Mac SP2

Posted by Leif Nelson <ne...@llnl.gov>.
On 7/30/09 12:19 PM, "David Fisher" <df...@jmlafferty.com> wrote:
> 
> As a project we should decide if -
> 
> (a) It is safe to make the Application setting "Apache POI". A test
> would be to successfully open an XSSF file with consumers other than
> Excel 12.2.0. This includes OpenOffice 3.0.
> 
> (b) If it is safe then I propose that we set the Application to
> "Apache POI" and the AppVersion to the poi version - eg. "3.5-
> beta7-20090731"
> 
> This is worth a discussion. Please respond if you have an opinion.
> 

I did some experimenting with the newly release Excel 2008 12.2.1.  Here's
what I've found related to (b) above:

The following works on both Mac (12.2.1) /Windows Excel (12.0.6425.1000):

XSSFWorkbook wb = new XSSFWorkbook();
POIXMLProperties.ExtendedProperties ext =
wb.getProperties().getExtendedProperties();
ext.getUnderlyingProperties().setApplication("Apache POI");
ext.getUnderlyingProperties().setAppVersion("3.5");

This DOES NOT WORK on either version of Excel (mac or windows)

XSSFWorkbook wb = new XSSFWorkbook();
POIXMLProperties.ExtendedProperties ext =
wb.getProperties().getExtendedProperties();
ext.getUnderlyingProperties().setApplication("Apache POI");
ext.getUnderlyingProperties().setAppVersion("3.5-beta-7020090731");

After some experimenting, it seems that anything in the AppVersion field
except a digit or a "." causes the files to become unreadable by Excel.
i.e. 3.5.5 works, but 3.5.beta7 does not.  Also, it only allows two "."
values.  So, 3.5.5 works, but 3.5.5.0 does not.

I tried the following variations. All of the results were the SAME for both
windows/mac excel, which is nice.  OpenOffice 3.1 could open every one of
the variations.

3.5-beta7 (excel-NO) (openoffice-OK)
3-5 (excel-NO) (openoffice-OK)
3.5.beta7 (excel-NO) (openoffice-OK)
3.5.b (excel-NO) (openoffice-OK)
3.5.0.20090731 (excel-NO) (openoffice-OK)
3.5.0.1 (excel-NO) (openoffice-OK)

3.5 (excel-OK) (openoffice-OK)
3.5.0 (excel-OK) (openoffice-OK)
3.5.20090731 (excel-OK) (openoffice-OK)

According to the ECMA-376 Second Edition docs:

22.2.2.1 Application (Application Name)
This element specifies the name of the application that created this
document. 
The possible values for this element are defined by the W3C XML Schema
string datatype. 

22.2.2.2 AppVersion (Application Version)
This element specifies the version of the application which produced this
document. 
The content of this element shall be of the form XX.YYYY where X and Y
represent numerical values, or the document shall be considered
non-conformant. 
[Note: The contents of this element do not represent absolute values, but
rather qualify the contents of the Application element to differentiate
between different versions of the same producer. Applications should use
this information in an informative manner only (as document metadata). end
note]  
The possible values for this element are defined by the W3C XML Schema
string datatype.

Hope that helps,
--Leif






---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org


Re: Issues with Open XML in Office 2008 for Mac SP2

Posted by David Fisher <df...@jmlafferty.com>.
Hi -

Given that Microsoft plans to fix this bug in August which is before  
the planned date for 3.5-FINAL, we should reconsider our quick "MS- 
Compatible" as default decision. See intermixed comments below.

On Jul 30, 2009, at 6:57 AM, Yegor Kozlov wrote:

> I've dropped a line on compatibility with MS Office 2008 on http://poi.apache.org/spreadsheet/index.html
> This clearly describes the fix and how to remove it.
>
> P.S. the .html will be available in a hour or two, after the next  
> rsync cycle.

I don't see it yet. Perhaps more will need to be explained. See below:

On Jul 29, 2009, at 11:37 AM, Blair Neumann wrote:

> Hello Dave Fisher and other POI contributors.
>
> Pat McMillan forwarded email from Dave Fisher describing the Apache  
> POI project’s concerns about an issue in Office 2008 for Mac SP2,  
> concerns that we share. This email is a response to Dave Fisher's  
> earlier correspondence.
>
> We are aware of a serious bug in Office 2008 for Mac SP2 version  
> 12.2.0 causing some Open XML files to fail to open in Office 2008  
> SP2. This bug is affecting Open XML files from a variety of sources  
> including Office for Windows, Office for Mac, and the Apache POI  
> project. We understand the problem and are working to release a  
> version 12.2.1 of Office 2008 that addresses this issue in August.

This is before we plan to release POI-3.5-FINAL. I believe the target  
date for 3.5-FINAL is before October 1. Am I correct? I think someone  
should start a thread to make sure that we cover everything and can  
all work towards that schedule.

> A few points from Dave Fisher's mail should be addressed.
>
>>> the Apache POI project has adjusted code to produce "MS-compatible  
>>> OOXML by adding docProps/app.xml with "Microsoft Excel". We've  
>>> done similar for DOCX files. This will allow users of future  
>>> versions of Apache POI to produce OOXML documents that will work  
>>> with Office 2008 for Mac SP2.
>
> This is not the best long-term solution, though we understand that  
> it may be an effective short-term response to a bug in Office 2008  
> for Mac version 12.2.0. This isn't about producing "MS-compatible"  
> Open XML but is rather a workaround for a short-term bug. Rather  
> than asserting that Apache POI files are written by Microsoft, we  
> hope that your long-term guidance will be to recommend that affected  
> Office 2008 for Mac users use version 12.2.1 or later (or version  
> 12.1.9 or earlier) with files written by Apache POI.

Given that the issue will not be long term I agree that we should back  
off our quick solution. New workbooks should not create docProps/ 
apps.xml that pretend to be from "Microsoft Excel" or "Microsoft  
Office Word". Does anyone disagree?

As suggested we should advise that users avoid Office 2008 for Mac SP2  
version 12.2.0 and wait for 12.2.1. If they must use 12.2.0 then we  
advise them how to apply the fix, and suggest that they remove such  
markings as possible.

Our guidance for removing the fix will depend on whether we decide to  
always mark new XSSF workbooks as coming from "Apache POI"

>>> In our understanding of the standard docProps/app.xml is optional.
>
> Our understanding also. An extended properties part (such as  
> app.xml, which happens to be what we call it) is indeed optional as  
> stated in ECMA-376, Part 4, Section 7.2, "If all extended property  
> elements are omitted then the extended properties part may be  
> excluded from a document."
>
>>> If this [the Application tag] were required by the standard then  
>>> we think this would mean that the proper value for Apache POI  
>>> created documents would to be "Apache POI" and not "Microsoft Excel"
>
> Our understanding also. Related to my discussion above, we believe  
> that an Application value "Apache POI" is appropriate.

As a project we should decide if -

(a) It is safe to make the Application setting "Apache POI". A test  
would be to successfully open an XSSF file with consumers other than  
Excel 12.2.0. This includes OpenOffice 3.0.

(b) If it is safe then I propose that we set the Application to  
"Apache POI" and the AppVersion to the poi version - eg. "3.5- 
beta7-20090731"

This is worth a discussion. Please respond if you have an opinion.

>>> we expect that Microsoft will return to compliance with ISO  
>>> standard 29500 as promised.
>
> To be clear, Office 2008 for Mac conforms to ECMA-376 and does not  
> yet conform to ISO/IEC 29500. The current situation is a bug in our  
> ECMA-376 implementation and will be remedied as soon as possible.

You are correct. Sorry about the misunderstanding. I do wonder about  
Microsoft's plans for ISO/IEC 29500 compliance.

Regards,
Dave

>
> Warm regards.
> -Blair.
>
> Blair Neumann
> Program Manager, Macintosh Business Unit
> blair.neumann@microsoft.com
> ________________________________
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org