30 $objWriter->startDocument(
'1.0',
'UTF-8',
'yes');
33 $objWriter->startElement(
'workbook');
34 $objWriter->writeAttribute(
'xml:space',
'preserve');
35 $objWriter->writeAttribute(
'xmlns',
'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
36 $objWriter->writeAttribute(
'xmlns:r',
'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
56 (
new DefinedNamesWriter($objWriter, $spreadsheet))->
write();
61 $objWriter->endElement();
64 return $objWriter->getData();
74 $objWriter->startElement(
'fileVersion');
75 $objWriter->writeAttribute(
'appName',
'xl');
76 $objWriter->writeAttribute(
'lastEdited',
'4');
77 $objWriter->writeAttribute(
'lowestEdited',
'4');
78 $objWriter->writeAttribute(
'rupBuild',
'4505');
79 $objWriter->endElement();
89 $objWriter->startElement(
'workbookPr');
92 $objWriter->writeAttribute(
'date1904',
'1');
95 $objWriter->writeAttribute(
'codeName',
'ThisWorkbook');
97 $objWriter->endElement();
108 $objWriter->startElement(
'bookViews');
111 $objWriter->startElement(
'workbookView');
116 $objWriter->writeAttribute(
'minimized', ($spreadsheet->
getMinimized() ?
'true' :
'false'));
117 $objWriter->writeAttribute(
'showHorizontalScroll', ($spreadsheet->
getShowHorizontalScroll() ?
'true' :
'false'));
118 $objWriter->writeAttribute(
'showSheetTabs', ($spreadsheet->
getShowSheetTabs() ?
'true' :
'false'));
119 $objWriter->writeAttribute(
'showVerticalScroll', ($spreadsheet->
getShowVerticalScroll() ?
'true' :
'false'));
120 $objWriter->writeAttribute(
'tabRatio', $spreadsheet->
getTabRatio());
121 $objWriter->writeAttribute(
'visibility', $spreadsheet->
getVisibility());
123 $objWriter->endElement();
125 $objWriter->endElement();
135 if ($spreadsheet->
getSecurity()->isSecurityEnabled()) {
136 $objWriter->startElement(
'workbookProtection');
137 $objWriter->writeAttribute(
'lockRevision', ($spreadsheet->
getSecurity()->getLockRevision() ?
'true' :
'false'));
138 $objWriter->writeAttribute(
'lockStructure', ($spreadsheet->
getSecurity()->getLockStructure() ?
'true' :
'false'));
139 $objWriter->writeAttribute(
'lockWindows', ($spreadsheet->
getSecurity()->getLockWindows() ?
'true' :
'false'));
141 if ($spreadsheet->
getSecurity()->getRevisionsPassword() !=
'') {
142 $objWriter->writeAttribute(
'revisionsPassword', $spreadsheet->
getSecurity()->getRevisionsPassword());
145 if ($spreadsheet->
getSecurity()->getWorkbookPassword() !=
'') {
146 $objWriter->writeAttribute(
'workbookPassword', $spreadsheet->
getSecurity()->getWorkbookPassword());
149 $objWriter->endElement();
161 $objWriter->startElement(
'calcPr');
166 $objWriter->writeAttribute(
'calcId',
'999999');
167 $objWriter->writeAttribute(
'calcMode',
'auto');
169 $objWriter->writeAttribute(
'calcCompleted', ($recalcRequired) ? 1 : 0);
170 $objWriter->writeAttribute(
'fullCalcOnLoad', ($recalcRequired) ? 0 : 1);
171 $objWriter->writeAttribute(
'forceFullCalc', ($recalcRequired) ? 0 : 1);
173 $objWriter->endElement();
184 $objWriter->startElement(
'sheets');
186 for (
$i = 0;
$i < $sheetCount; ++
$i) {
197 $objWriter->endElement();
209 private function writeSheet(
XMLWriter $objWriter, $pSheetname, $pSheetId = 1, $pRelId = 1, $sheetState =
'visible'): void
211 if ($pSheetname !=
'') {
213 $objWriter->startElement(
'sheet');
214 $objWriter->writeAttribute(
'name', $pSheetname);
215 $objWriter->writeAttribute(
'sheetId', $pSheetId);
216 if ($sheetState !==
'visible' && $sheetState !=
'') {
217 $objWriter->writeAttribute(
'state', $sheetState);
219 $objWriter->writeAttribute(
'r:id',
'rId' . $pRelId);
220 $objWriter->endElement();
222 throw new WriterException(
'Invalid parameters passed.');
An exception for terminatinating execution or to throw for unit testing.
static getExcelCalendar()
Return the Excel calendar (Windows 1900 or Mac 1904).
const STORAGE_MEMORY
Temporary storage method.
getShowHorizontalScroll()
Get the visibility of the horizonal scroll bar in the application.
getFirstSheetIndex()
Return the first sheet in the book view.
getSheet($pIndex)
Get sheet by index.
getSecurity()
Get security.
getShowSheetTabs()
Get the visibility of the sheet tabs in the application.
getSheetCount()
Get sheet count.
getShowVerticalScroll()
Get the visibility of the vertical scroll bar in the application.
getMinimized()
Return whether the workbook window is minimized.
getAutoFilterDateGrouping()
Return whether to group dates when presenting the user with filtering optiomd in the user interface.
getTabRatio()
Get the ratio between the workbook tabs bar and the horizontal scroll bar.
getActiveSheetIndex()
Get active sheet index.
getVisibility()
Return the visibility status of the workbook.
getDiskCachingDirectory()
Get disk caching directory.
getUseDiskCaching()
Get use disk caching where possible?
writeWorkbook(Spreadsheet $spreadsheet, $recalcRequired=false)
Write workbook to XML format.
writeWorkbookPr(XMLWriter $objWriter)
Write WorkbookPr.
writeBookViews(XMLWriter $objWriter, Spreadsheet $spreadsheet)
Write BookViews.
writeSheet(XMLWriter $objWriter, $pSheetname, $pSheetId=1, $pRelId=1, $sheetState='visible')
Write sheet.
writeWorkbookProtection(XMLWriter $objWriter, Spreadsheet $spreadsheet)
Write WorkbookProtection.
writeCalcPr(XMLWriter $objWriter, $recalcRequired=true)
Write calcPr.
writeSheets(XMLWriter $objWriter, Spreadsheet $spreadsheet)
Write sheets.
writeFileVersion(XMLWriter $objWriter)
Write file version.
getParentWriter()
Get parent Xlsx object.
getOffice2003Compatibility()
Get Office2003 compatibility.