ILIAS  eassessment Revision 61809
 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 46 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 55 of file AdvancedValueBinder.php.

References $d, PHPExcel_Calculation\CALCULATION_REGEXP_NUMBER, PHPExcel_Cell_DefaultValueBinder\dataTypeForValue(), PHPExcel_Style_NumberFormat\FORMAT_DATE_TIME3, PHPExcel_Style_NumberFormat\FORMAT_DATE_TIME4, PHPExcel_Style_NumberFormat\FORMAT_PERCENTAGE, PHPExcel_Cell\getCoordinate(), PHPExcel_Calculation\getFALSE(), PHPExcel_Cell\getParent(), PHPExcel_Calculation\getTRUE(), PHPExcel_Shared_String\SanitizeUTF8(), PHPExcel_Cell\setValueExplicit(), PHPExcel_Shared_Date\stringToExcel(), PHPExcel_Cell_DataType\TYPE_BOOL, 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) {
// Test for booleans using locale-setting
if ($value == PHPExcel_Calculation::getTRUE()) {
return true;
} elseif($value == PHPExcel_Calculation::getFALSE()) {
return true;
}
// Check for number in scientific format
if (preg_match('/^'.PHPExcel_Calculation::CALCULATION_REGEXP_NUMBER.'$/', $value)) {
return true;
}
// 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 without seconds 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 time with seconds '9:45:59', '09:45:59'
if (preg_match('/^(\d|[0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$/', $value)) {
list($h, $m, $s) = explode(':', $value);
$days = $h / 24 + $m / 1440 + $s / 86400;
// Convert value to number
// Set style
$cell->getParent()->getStyle( $cell->getCoordinate() )->getNumberFormat()->setFormatCode( PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4 );
return true;
}
// Check for datetime, e.g. '2008-12-31', '2008-12-31 15:59', '2008-12-31 15:59:10'
if (($d = PHPExcel_Shared_Date::stringToExcel($value)) !== false) {
// Convert value to number
// Determine style. Either there is a time part or not. Look for ':'
if (strpos($value, ':') !== false) {
$formatCode = 'yyyy-mm-dd h:mm';
} else {
$formatCode = 'yyyy-mm-dd';
}
$cell->getParent()->getStyle( $cell->getCoordinate() )->getNumberFormat()->setFormatCode($formatCode);
return true;
}
// Check for newline character "\n"
if (strpos($value, "\n") !== false) {
// Set style
$cell->getParent()->getStyle( $cell->getCoordinate() )->getAlignment()->setWrapText(true);
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: