<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[
Zend\OfficeOpen is a simple component that can read and write ISO/IEC 29500 Office Open XML File Formats. Supporting of this standard (ISO/IEC 29500)Zend Framework: Zend\OfficeOpen Component Proposal
Proposed Component Name
Zend\OfficeOpen
Developer Notes
http://framework.zend.com/wiki/display/ZFDEV/Zend\OfficeOpen
Proposers
Martin Keckeis
Zend Liaison
TBD
Revision
1.0 - 1 February 2011: Initial Draft. (wiki revision: 21)
Table of Contents
1. Overview
This include: spreadsheets, wordprocessing and presentation documents.
2. References
- PHPExcel
- Spreadsheet_Excel_Write (only Excel 5 and outdated)
- XML overview
- Microsoft Office XML formats
The standard ISO/IEC 29500:2008:
- Download page (4 ISO documents + 2 with changes)
Note: (ISO/IEC 29500-1) beginning at page 5553, are 8 pages where the differences between ISO/IEC 29500:2008 and ECMA-376:2006 are written
Attachments:
- Spreadsheet parts
- Spreadsheet example structure
- Wordprocessing parts
- Wordprocessing example structure
- Shared parts (used by spreadsheet, wordprocessing, presentation
3. Component Requirements, Constraints, and Acceptance Criteria
- This component will not read/write/convert old formats like .xls, .doc, .ppt, ...
- This component will read/write ISO/IEC 29500 Office Open XML File Formats
- This component will use Zend\Cache for caching readed files
- This component will use Zend\Translate and/or Zend\Locale for translation
- This component maybe will support both "ISO/IEC 29500" and "ECMA-376"
4. Dependencies on Other Framework Components
- Zend\Exception
- Zend\Cache
- Zend\Translate
- Zend\Locale
- Zend\Config (maybe)
5. Theory of Operation
General for using this component, the ZipArchive and XML Manipulating from PHP is needed.
| UC-01 write |
|---|
1. User defines what shall be written to the output (texts, images, meta-data, formatting, ...)
2. Forwarding the provided data to the generation classes
3. Generate and write each single XML document
4. Putting it in the ZIP together
| UC-01 open/read |
|---|
1. Unzip the XMLs
2. open [Content_Types].xml and _rels/.rels (these two files are required minimal)
3. Looping through the needed files (from user)
4. Return output
6. Milestones / Tasks
- Milestone 1: Reading/Understanding the whole XML parts which are possible in the ZIP of word, excel, powerpoint
- Milestone 2: Concept
- Milestone 3: Class/Folder structure
- Milestone 4: Working prototype
- Milestone 5: Feedback
- Milestone 6: Writing Tests
- Milestone 7: Final coding
- Milestone 8: Documentation / Review
7. Class Index
- Zend\OfficeOpen\Exception
- ....
8. Use Cases
| UC-01 write |
|---|
use Zend\Excel;
$excel = new Excel(...);
$excel->setMetadata(...);
$worksheet = $excel->getWorksheet(...);
$worksheet->setHead(...);
$worksheet->setFooter(...);
$style1 = new Excel\Style();
$style1->setBorder(...);
$style1->setBackgroundColor(...);
$style1->setColor(...);
$cell = new Excel\Cell();
$cell->setText('cellText');
$cell->setStyle($style1);
$worksheet->setCell('A', '1', $cell);
$excel->render('test.xlxs');