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

Public Member Functions

 bindValue (PHPExcel_Cell $cell, $value=null)
 Bind value to a cell.

Additional Inherited Members

- Static Public Member Functions inherited from PHPExcel_Cell_DefaultValueBinder
static dataTypeForValue ($pValue=null)
 DataType for value.

Detailed Description

Definition at line 63 of file AdvancedValueBinder.php.

Member Function Documentation

PHPExcel_Cell_AdvancedValueBinder::bindValue ( PHPExcel_Cell  $cell,
  $value = null 
)

Bind value to a cell.

Parameters
PHPExcel_Cell$cellCell to bind value to
mixed$valueValue to bind in cell
Returns
boolean

Reimplemented from PHPExcel_Cell_DefaultValueBinder.

Definition at line 72 of file AdvancedValueBinder.php.

References PHPExcel_Cell_DefaultValueBinder\dataTypeForValue(), PHPExcel_Style_NumberFormat\FORMAT_DATE_TIME3, PHPExcel_Style_NumberFormat\FORMAT_DATE_YYYYMMDD2, PHPExcel_Style_NumberFormat\FORMAT_PERCENTAGE, PHPExcel_Style_NumberFormat\FORMAT_TEXT, PHPExcel_Cell\getCoordinate(), PHPExcel_Cell\getParent(), PHPExcel_Shared_Date\PHPToExcel(), PHPExcel_Shared_String\SanitizeUTF8(), PHPExcel_Cell\setValueExplicit(), PHPExcel_Cell_DataType\TYPE_NUMERIC, and PHPExcel_Cell_DataType\TYPE_STRING.

{
// sanitize UTF-8 strings
if (is_string($value)) {
}
// Find out data type
$dataType = parent::dataTypeForValue($value);
// Style logic - strings
if ($dataType === PHPExcel_Cell_DataType::TYPE_STRING && !$value instanceof PHPExcel_RichText) {
// Check for percentage
if (preg_match('/^\-?[0-9]*\.?[0-9]*\s?\%$/', $value)) {
// Convert value to number
$cell->setValueExplicit( (float)str_replace('%', '', $value) / 100, PHPExcel_Cell_DataType::TYPE_NUMERIC);
// Set style
$cell->getParent()->getStyle( $cell->getCoordinate() )->getNumberFormat()->setFormatCode( PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE );
return true;
}
// Check for time e.g. '9:45', '09:45'
if (preg_match('/^(\d|[0-1]\d|2[0-3]):[0-5]\d$/', $value)) {
list($h, $m) = explode(':', $value);
$days = $h / 24 + $m / 1440;
// Convert value to number
// Set style
$cell->getParent()->getStyle( $cell->getCoordinate() )->getNumberFormat()->setFormatCode( PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME3 );
return true;
}
// Check for date
if (strtotime($value) !== false) {
// make sure we have UTC for the sake of strtotime
$saveTimeZone = date_default_timezone_get();
date_default_timezone_set('UTC');
// Convert value to Excel date
// Set style
$cell->getParent()->getStyle( $cell->getCoordinate() )->getNumberFormat()->setFormatCode( PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2 );
// restore original value for timezone
date_default_timezone_set($saveTimeZone);
return true;
}
}
// Style logic - Numbers
// Leading zeroes?
if (preg_match('/^\-?[0]+[0-9]*\.?[0-9]*$/', $value)) {
// Convert value to string
// Set style
$cell->getParent()->getStyle( $cell->getCoordinate() )->getNumberFormat()->setFormatCode( PHPExcel_Style_NumberFormat::FORMAT_TEXT );
return true;
}
}
// Not bound yet? Use parent...
return parent::bindValue($cell, $value);
}

+ Here is the call graph for this function:


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