Date post: | 25-Jun-2015 |
Category: |
Technology |
Upload: | maarten-balliauw |
View: | 3,116 times |
Download: | 3 times |
Document Interop from an Open Source perspective
Maarten Balliauw – http://blog.maartenballiauw.beJulien Chable – http://blogs.developpeur.org/neodante
Apr 13, 2023
Maarten Balliauw RealDolmen –
http://www.realdolmen.com http://blog.maartenballiauw.be [email protected]
Julien Chable Wygwam – http://www.wygwam.com http://blogs.developpeur.org/neodante [email protected]
PHPExcel OPENXML4J
Provides an in-memory spreadsheet engine Workbook with worksheets Worksheets with cells Formula support + calculation engine Styles Images …
http://www.phpexcel.net or http://www.codeplex.com/PHPExcel
PHP library (PHP 5.1.x and up) Provides an in-memory spreadsheet
engine De-facto standard in PHP world Multi-platform Open-source Great documentation! Currently 14 developers - 4 active Average 280 downloads per day!
http://www.phpexcel.net or http://www.codeplex.com/PHPExcel
Generating Excel documents on server Reporting from PHP applications in
different file formats Processing existing Excel documents on
server Importing data from Excel document Re-using business logic stored in Excel
document (check my blog!) …
Core class library featuring spreadsheet engine
Supported by IReader and IWriter instances
Readers for Excel2007, Excel5, CSV, Serialized format
Writers for Excel2007, Excel5, CSV, HTML, PDF and Serialized format
Calculatio
n
Read/write
PHP
$x = 5; $x = “hello”;
$x = “Hello ” . “world”;
echo “hello !”;
C#
int x = 5; string x = “hello”;
string x = “Hello ” + “world”;
Console.Write(“hello!”);
PHPExcel OPENXML4J
Open XML for Java
Multi platform API for Java client/J2SE and serveur/J2EE applications
Open Source Project under Licence BSD (dual license Apache V2)
Official website : http://www.openxml4j.org/
Based on ECMA 376 specifications
OpenXML4J launch May 30th, 2007
Unified companies and communities efforts into a concrete and common implementation
Promote Open XML Interoperability in heterogeneous environments
An open standard, an open implementation !
import org.openxml4j.opc;...Package p = Package.open(filepath, PackageAccess.READ);
for (PackagePart part : p.getParts())System.out.println(part.getPartName() +
" -> " + part.getContentType());
using System.IO.Packaging;...Package p = Package.Open("", System.IO.FileMode.Open); for (PackagePart part in p.GetParts()) Console.WriteLine(part.Uri + " -> " + part.ContentType);
Package p = Package.open(“c:\....docx”, PackageAccess.READ);PackageProperties props = p.getPackageProperties();System.out.println("Title: " + props.getTitleProperty().getValue());p.close();
Package p = Package.Open(“c:\....docx", FileMode.Open);PackageProperties props = p.PackageProperties;Console.WriteLine("Title: " + props.Title);p.Close();
Several steps:1. Implementation of Open Packaging
Convention (part 2)2. Implementation of typed parts :
WordprocessingML, SPreadsheetML and PresentationML
3. Implementation of an object model for each format
Now, only step 1 is implemented. Now the next step are in POI
DOM4J
Librairies
XMLbeans …
Open Packaging Convention
Shared schemas(DrawingML, MathML, CustomXML, Metadata,…)
WordprocessingML
SpreadsheetML PresentationML
STP STP STP
Modèle objets Modèle objets Modèle objets
Beginning in 2006 : Now uses by several open source
projects :▪ POI (http://poi.apache.org) ▪ Doc4J (http://dev.plutext.org/trac/docx4j)
Several projects in companies (French) Today we’re joining the Apache
Foundation and the POI project to offer a single API and point of contact to the community
Web Service Glassfish V2 Beta 2
Close to the ECMA standard specifications Validation tests
A set of APIs to read and write Excel files using Java
Still very active since April 2001: Top Level Project within Apache !
Also support several MS file formats : Word, PowerPoint, Visio, Publisher
Version 3.5 will support XLSX and PPTX
Several APIs for several file formats: HSSF and XSSF: Read and write Excel
documents (97 – 2003 and 2007) HWPF: Read (and partly write) Word 97
documents. Early stages of developement. HSLF: Read and write PowerPoint 97-2003
documents. HPSF: Read and write OLE 2 property (title,
author, etc) HDGF: Read at very low level (and simple text
extraction) Visio 97-2003 documents HPBF: Read at very very low level (and simple
text extraction) Publisher 98-2007 documents
POI compilation with Ant :
Maarten Balliauw http://blog.maartenballiauw.be [email protected]
Julien Chable http://blogs.developpeur.org/neodante [email protected]