ILIAS  Release_4_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
PHPExcel_Writer_Excel2007_StringTable Class Reference
+ Inheritance diagram for PHPExcel_Writer_Excel2007_StringTable:
+ Collaboration diagram for PHPExcel_Writer_Excel2007_StringTable:

Public Member Functions

 createStringTable ($pSheet=null, $pExistingTable=null)
 Create worksheet stringtable.
 writeStringTable ($pStringTable=null)
 Write string table to XML format.
 writeRichText (PHPExcel_Shared_XMLWriter $objWriter=null, PHPExcel_RichText $pRichText=null)
 Write Rich Text.
 flipStringTable ($stringTable=array())
 Flip string table (for index searching)
- Public Member Functions inherited from PHPExcel_Writer_Excel2007_WriterPart
 setParentWriter (PHPExcel_Writer_IWriter $pWriter=null)
 Set parent IWriter object.
 getParentWriter ()
 Get parent IWriter object.

Detailed Description

Definition at line 60 of file StringTable.php.

Member Function Documentation

PHPExcel_Writer_Excel2007_StringTable::createStringTable (   $pSheet = null,
  $pExistingTable = null 
)

Create worksheet stringtable.

Parameters
PHPExcel_Worksheet$pSheetWorksheet
string[]$pExistingTable Existing table to eventually merge with
Returns
string[] String table for worksheet
Exceptions
Exception

Definition at line 70 of file StringTable.php.

References flipStringTable(), PHPExcel_Cell_DataType\TYPE_NULL, and PHPExcel_Cell_DataType\TYPE_STRING.

{
if (!is_null($pSheet)) {
// Create string lookup table
$aStringTable = array();
$cellCollection = null;
$aFlippedStringTable = null; // For faster lookup
// Is an existing table given?
if (!is_null($pExistingTable) && is_array($pExistingTable)) {
$aStringTable = $pExistingTable;
}
// Fill index array
$aFlippedStringTable = $this->flipStringTable($aStringTable);
// Loop trough cells
$cellCollection = $pSheet->getCellCollection();
foreach ($cellCollection as $cell) {
if (!is_object($cell->getValue()) &&
!isset($aFlippedStringTable[$cell->getValue()]) &&
!is_null($cell->getValue()) &&
$cell->getValue() !== '' &&
($cell->getDataType() == PHPExcel_Cell_DataType::TYPE_STRING || $cell->getDataType() == PHPExcel_Cell_DataType::TYPE_NULL)
) {
$aStringTable[] = $cell->getValue();
$aFlippedStringTable[$cell->getValue()] = 1;
} else if ($cell->getValue() instanceof PHPExcel_RichText &&
!isset($aFlippedStringTable[$cell->getValue()->getHashCode()]) &&
!is_null($cell->getValue())
) {
$aStringTable[] = $cell->getValue();
$aFlippedStringTable[$cell->getValue()->getHashCode()] = 1;
}
}
// Return
return $aStringTable;
} else {
throw new Exception("Invalid PHPExcel_Worksheet object passed.");
}
}

+ Here is the call graph for this function:

PHPExcel_Writer_Excel2007_StringTable::flipStringTable (   $stringTable = array())

Flip string table (for index searching)

Parameters
array$stringTableStringtable
Returns
array

Definition at line 253 of file StringTable.php.

References $key.

Referenced by createStringTable().

{
// Return value
$returnValue = array();
// Loop trough stringtable and add flipped items to $returnValue
foreach ($stringTable as $key => $value) {
if (! $value instanceof PHPExcel_RichText) {
$returnValue[$value] = $key;
} else if ($value instanceof PHPExcel_RichText) {
$returnValue[$value->getHashCode()] = $key;
}
}
// Return
return $returnValue;
}

+ Here is the caller graph for this function:

PHPExcel_Writer_Excel2007_StringTable::writeRichText ( PHPExcel_Shared_XMLWriter  $objWriter = null,
PHPExcel_RichText  $pRichText = null 
)

Write Rich Text.

Parameters
PHPExcel_Shared_XMLWriter$objWriterXML Writer
PHPExcel_RichText$pRichTextRich text
Exceptions
Exception

Definition at line 175 of file StringTable.php.

References PHPExcel_Shared_String\ControlCharacterPHP2OOXML().

Referenced by writeStringTable().

{
// Loop trough rich text elements
$elements = $pRichText->getRichTextElements();
foreach ($elements as $element) {
// r
$objWriter->startElement('r');
// rPr
if ($element instanceof PHPExcel_RichText_Run) {
// rPr
$objWriter->startElement('rPr');
// rFont
$objWriter->startElement('rFont');
$objWriter->writeAttribute('val', $element->getFont()->getName());
$objWriter->endElement();
// Bold
$objWriter->startElement('b');
$objWriter->writeAttribute('val', ($element->getFont()->getBold() ? 'true' : 'false'));
$objWriter->endElement();
// Italic
$objWriter->startElement('i');
$objWriter->writeAttribute('val', ($element->getFont()->getItalic() ? 'true' : 'false'));
$objWriter->endElement();
// Superscript / subscript
if ($element->getFont()->getSuperScript() || $element->getFont()->getSubScript()) {
$objWriter->startElement('vertAlign');
if ($element->getFont()->getSuperScript()) {
$objWriter->writeAttribute('val', 'superscript');
} else if ($element->getFont()->getSubScript()) {
$objWriter->writeAttribute('val', 'subscript');
}
$objWriter->endElement();
}
// Strikethrough
$objWriter->startElement('strike');
$objWriter->writeAttribute('val', ($element->getFont()->getStrikethrough() ? 'true' : 'false'));
$objWriter->endElement();
// Color
$objWriter->startElement('color');
$objWriter->writeAttribute('rgb', $element->getFont()->getColor()->getARGB());
$objWriter->endElement();
// Size
$objWriter->startElement('sz');
$objWriter->writeAttribute('val', $element->getFont()->getSize());
$objWriter->endElement();
// Underline
$objWriter->startElement('u');
$objWriter->writeAttribute('val', $element->getFont()->getUnderline());
$objWriter->endElement();
$objWriter->endElement();
}
// t
$objWriter->startElement('t');
$objWriter->writeAttribute('xml:space', 'preserve');
$objWriter->writeRaw(PHPExcel_Shared_String::ControlCharacterPHP2OOXML( htmlspecialchars($element->getText()) ));
$objWriter->endElement();
$objWriter->endElement();
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

PHPExcel_Writer_Excel2007_StringTable::writeStringTable (   $pStringTable = null)

Write string table to XML format.

Parameters
string[]$pStringTable
Returns
string XML Output
Exceptions
Exception

Definition at line 121 of file StringTable.php.

References PHPExcel_Shared_String\ControlCharacterPHP2OOXML(), PHPExcel_Writer_Excel2007_WriterPart\getParentWriter(), PHPExcel_Shared_XMLWriter\STORAGE_DISK, PHPExcel_Shared_XMLWriter\STORAGE_MEMORY, and writeRichText().

{
if (!is_null($pStringTable)) {
// Create XML writer
$objWriter = null;
if ($this->getParentWriter()->getUseDiskCaching()) {
$objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
} else {
}
// XML header
$objWriter->startDocument('1.0','UTF-8','yes');
// String table
$objWriter->startElement('sst');
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
$objWriter->writeAttribute('uniqueCount', count($pStringTable));
// Loop trough string table
foreach ($pStringTable as $textElement) {
$objWriter->startElement('si');
if (! $textElement instanceof PHPExcel_RichText) {
$textToWrite = PHPExcel_Shared_String::ControlCharacterPHP2OOXML( $textElement );
$objWriter->startElement('t');
if ($textToWrite !== trim($textToWrite)) {
$objWriter->writeAttribute('xml:space', 'preserve');
}
$objWriter->writeRaw($textToWrite);
$objWriter->endElement();
} else if ($textElement instanceof PHPExcel_RichText) {
$this->writeRichText($objWriter, $textElement);
}
$objWriter->endElement();
}
$objWriter->endElement();
// Return
return $objWriter->getData();
} else {
throw new Exception("Invalid string table array passed.");
}
}

+ Here is the call graph for this function:


The documentation for this class was generated from the following file: