Does Apache POI support the "strict" variant of ISO/IEC 29500? - apache-poi

With M$ Excel 2013 there are 2 variants of XLSX, the "Transitional" which M$ supported with XLSX in Excel 2010, and "Strict" = OOXML. Is POI able to read and write the latter? If so, from which version of POI?

Yes, and POI 3.5 (though you'd be strongly advised to use 3.9, or wait about a week for a 3.10 beta)
POI uses the official ISO XML schema files to process the XML files, so by default works with the strict (official) form. There's not that much different between the two, but where there is such a difference that matters, POI will have code to munge the low level XML skipping what the schema would normally say.

No, Apache POI does not support Open XML Strict as of this date.
See source: https://helpwanted.apache.org/task.html?5a5d86c834df99c79279b34d6ecdc413107874be

Related

Apache POI HSSF/XSSF support for newer Versions of Excel

Currently im working on a project which includes the Apache POI to read and write Excel files.
Im looking for a source that basically says that the POI (HSSF/XSSF) works for newer versions of Excel as well, since it says on the official website that HSSF supports Excel 97-2007. Yet i got Excel 2016 and when i'm trying to read data out of the file it's working just fine. Im Struggling to find something because i don't know where to look, and my first language isn't english so skimming through the changelogs is really hard for me.
Please let me know if this was a stupid question.
Thanks in advance.

reading XLSB from apache poi

I've read it stated on multiple SO questions that Apache POI 3.16-beta3 has read-only support for xlsb files.
I am using poi 3.17 and cannot find any documentation or examples of this feature. The best I can find is an example of extracting raw text only via XSSFBEventBasedExcelExtractor, but this appears to be quite old (2010?) and I am unsure if this is the referenced capability.
Is there any documentation or examples of using poi to read xlsb files with the read-only parsing alluded to in the comments of this question: Exception reading XLSB File Apache POI java.io.CharConversionException and in an answer to this: Reading data from .xlsb in Clojure by Tim Allison ?
The functionality that Tim was referring to is actually XSSFBEventBasedExcelExtractor, and it was added in Apache POI 3.16. It can be used to extract text-content from the file.
There is currently no functionality to fully read the file content, though.
See also the JavaDoc for this class.

How to get DataValidation in Apache POI 3.9?

I am using Apache POI to write and read excel files,my poi version is 3.9,but now I faced a problem and do not find a good solution to solve it.
First I am use poi to write some datas to the excel table and will use DataValidation to add some prompt information in the table header,as the picture shown below:
The value in the cell is ABSInterention,and the prompt title is wrxuoh.After the excel generated successfully,other users will add some modification to the data cell and I need to read and parse the excel file and I want to get the prompt value wrxuoh again.So my question is:
When I read excel file using POI3.9,how can I get all the DataValidations for the current sheet?
I am using HSSFWorkbook and HSSFSheet.I found there is a method called getDataValidations in the POI Sheet,but I can not find this method in my poi3.9 jar file and also can not find it in the POI3.9 javadoc.
any help would be grateful!
Promoting a comment to an answer - you can't
That functionality was added to Apache POI after the 3.9 release you mention in your question
As per the Apache POI Changelog, you need to upgrade to at least POI 3.11 beta 3 to use that feature. 3.11 final, when it comes out shortly, will be the first stable release to include it

What are the differences between jxl vs apache poi vs jexcel?

what are the relevant differences between this libs ? also can tell me anyone about the license of this products ?
i need to generate large files .xlsx files. Until now i used jxl lib in for .xls with a a formated header using jxl.write.WritableCellFormat.
1) JXL is now JExcel.
2) You can get all list of differences between JExcel and Apache POI here
3) Both are free.
4)You should use Apache POI because JExcel does not support .xlsx format.
Difference between JXL and POI is that Java JXL does not support the Excel 2007+ ".xlsx" format; it only supports ".xls" format.
Apache POI supports both with a common design.

Convert docx to xlsx

I am writting .NET application that generates reports in docx. One of the last requirements I've got was - generate also these reports in xlsx format. So,
is there any simple way to convert docx to xlsx format? I haven't found any solution or utility/library. One of the ideas was to use Microsoft.Office.Interop Copy/Paste methods, but I don't know if it helps :)
We have used a MS tool that allows you to work with Office documents as if they were xml:
Open XML SDK 2.0 for Microsoft Office
http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en
This had the following benefits compared with interop:
No need in install office
No problems with memory due to Excel not closing
Better performance, in our case it went from 40 seconds to 2 (two)

Resources