Overview

Packages

  • JAMA
  • None
  • PHP
  • PHPExcel
    • CachedObjectStorage
    • Calculation
    • Cell
    • Chart
      • Renderer
    • Reader
      • Excel2007
      • Excel5
    • RichText
    • Settings
    • Shared
      • Escher
      • OLE
      • Trend
      • ZipArchive
    • Style
    • Worksheet
      • Drawing
    • Writer
      • 2007
      • CSV
      • Excel2007
      • Excel5
      • HTML
      • PDF

Classes

  • CholeskyDecomposition
  • Dao
  • DateTime
  • DateTimeZone
  • DOMNode
  • EigenvalueDecomposition
  • Elemento
  • Historial
  • Irradiacion
  • Latitud
  • MotorPhp
  • Panel
  • PclZip
  • Periodo
  • PHPExcel
  • PHPExcel_Autoloader
  • PHPExcel_Best_Fit
  • PHPExcel_CachedObjectStorage_APC
  • PHPExcel_CachedObjectStorage_CacheBase
  • PHPExcel_CachedObjectStorage_DiscISAM
  • PHPExcel_CachedObjectStorage_Igbinary
  • PHPExcel_CachedObjectStorage_Memcache
  • PHPExcel_CachedObjectStorage_Memory
  • PHPExcel_CachedObjectStorage_MemoryGZip
  • PHPExcel_CachedObjectStorage_MemorySerialized
  • PHPExcel_CachedObjectStorage_PHPTemp
  • PHPExcel_CachedObjectStorage_SQLite
  • PHPExcel_CachedObjectStorage_SQLite3
  • PHPExcel_CachedObjectStorage_Wincache
  • PHPExcel_CachedObjectStorageFactory
  • PHPExcel_CalcEngine_CyclicReferenceStack
  • PHPExcel_CalcEngine_Logger
  • PHPExcel_Calculation
  • PHPExcel_Calculation_Database
  • PHPExcel_Calculation_DateTime
  • PHPExcel_Calculation_Engineering
  • PHPExcel_Calculation_ExceptionHandler
  • PHPExcel_Calculation_Financial
  • PHPExcel_Calculation_FormulaParser
  • PHPExcel_Calculation_FormulaToken
  • PHPExcel_Calculation_Function
  • PHPExcel_Calculation_Functions
  • PHPExcel_Calculation_Logical
  • PHPExcel_Calculation_LookupRef
  • PHPExcel_Calculation_MathTrig
  • PHPExcel_Calculation_Statistical
  • PHPExcel_Calculation_TextData
  • PHPExcel_Calculation_Token_Stack
  • PHPExcel_Cell
  • PHPExcel_Cell_AdvancedValueBinder
  • PHPExcel_Cell_DataType
  • PHPExcel_Cell_DataValidation
  • PHPExcel_Cell_DefaultValueBinder
  • PHPExcel_Cell_Hyperlink
  • PHPExcel_Chart
  • PHPExcel_Chart_DataSeries
  • PHPExcel_Chart_DataSeriesValues
  • PHPExcel_Chart_Layout
  • PHPExcel_Chart_Legend
  • PHPExcel_Chart_PlotArea
  • PHPExcel_Chart_Renderer_jpgraph
  • PHPExcel_Chart_Title
  • PHPExcel_Comment
  • PHPExcel_DocumentProperties
  • PHPExcel_DocumentSecurity
  • PHPExcel_Exponential_Best_Fit
  • PHPExcel_HashTable
  • PHPExcel_IOFactory
  • PHPExcel_Linear_Best_Fit
  • PHPExcel_Logarithmic_Best_Fit
  • PHPExcel_NamedRange
  • PHPExcel_Polynomial_Best_Fit
  • PHPExcel_Power_Best_Fit
  • PHPExcel_Reader_Abstract
  • PHPExcel_Reader_CSV
  • PHPExcel_Reader_DefaultReadFilter
  • PHPExcel_Reader_Excel2003XML
  • PHPExcel_Reader_Excel2007
  • PHPExcel_Reader_Excel2007_Chart
  • PHPExcel_Reader_Excel2007_Theme
  • PHPExcel_Reader_Excel5
  • PHPExcel_Reader_Excel5_Escher
  • PHPExcel_Reader_Excel5_MD5
  • PHPExcel_Reader_Excel5_RC4
  • PHPExcel_Reader_Gnumeric
  • PHPExcel_Reader_HTML
  • PHPExcel_Reader_OOCalc
  • PHPExcel_Reader_SYLK
  • PHPExcel_ReferenceHelper
  • PHPExcel_RichText
  • PHPExcel_RichText_Run
  • PHPExcel_RichText_TextElement
  • PHPExcel_Settings
  • PHPExcel_Shared_CodePage
  • PHPExcel_Shared_Date
  • PHPExcel_Shared_Drawing
  • PHPExcel_Shared_Escher
  • PHPExcel_Shared_Escher_DgContainer
  • PHPExcel_Shared_Escher_DgContainer_SpgrContainer
  • PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer
  • PHPExcel_Shared_Escher_DggContainer
  • PHPExcel_Shared_Escher_DggContainer_BstoreContainer
  • PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE
  • PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip
  • PHPExcel_Shared_Excel5
  • PHPExcel_Shared_File
  • PHPExcel_Shared_Font
  • PHPExcel_Shared_JAMA_LUDecomposition
  • PHPExcel_Shared_JAMA_Matrix
  • PHPExcel_Shared_JAMA_QRDecomposition
  • PHPExcel_Shared_OLE
  • PHPExcel_Shared_OLE_ChainedBlockStream
  • PHPExcel_Shared_OLE_PPS
  • PHPExcel_Shared_OLE_PPS_File
  • PHPExcel_Shared_OLE_PPS_Root
  • PHPExcel_Shared_OLERead
  • PHPExcel_Shared_PasswordHasher
  • PHPExcel_Shared_String
  • PHPExcel_Shared_TimeZone
  • PHPExcel_Shared_XMLWriter
  • PHPExcel_Shared_ZipArchive
  • PHPExcel_Shared_ZipStreamWrapper
  • PHPExcel_Style
  • PHPExcel_Style_Alignment
  • PHPExcel_Style_Border
  • PHPExcel_Style_Borders
  • PHPExcel_Style_Color
  • PHPExcel_Style_Conditional
  • PHPExcel_Style_Fill
  • PHPExcel_Style_Font
  • PHPExcel_Style_NumberFormat
  • PHPExcel_Style_Protection
  • PHPExcel_Style_Supervisor
  • PHPExcel_Worksheet
  • PHPExcel_Worksheet_AutoFilter
  • PHPExcel_Worksheet_AutoFilter_Column
  • PHPExcel_Worksheet_AutoFilter_Column_Rule
  • PHPExcel_Worksheet_BaseDrawing
  • PHPExcel_Worksheet_CellIterator
  • PHPExcel_Worksheet_ColumnDimension
  • PHPExcel_Worksheet_Drawing
  • PHPExcel_Worksheet_Drawing_Shadow
  • PHPExcel_Worksheet_HeaderFooter
  • PHPExcel_Worksheet_HeaderFooterDrawing
  • PHPExcel_Worksheet_MemoryDrawing
  • PHPExcel_Worksheet_PageMargins
  • PHPExcel_Worksheet_PageSetup
  • PHPExcel_Worksheet_Protection
  • PHPExcel_Worksheet_Row
  • PHPExcel_Worksheet_RowDimension
  • PHPExcel_Worksheet_RowIterator
  • PHPExcel_Worksheet_SheetView
  • PHPExcel_WorksheetIterator
  • PHPExcel_Writer_Abstract
  • PHPExcel_Writer_CSV
  • PHPExcel_Writer_Excel2007
  • PHPExcel_Writer_Excel2007_Chart
  • PHPExcel_Writer_Excel2007_Comments
  • PHPExcel_Writer_Excel2007_ContentTypes
  • PHPExcel_Writer_Excel2007_DocProps
  • PHPExcel_Writer_Excel2007_Drawing
  • PHPExcel_Writer_Excel2007_Rels
  • PHPExcel_Writer_Excel2007_RelsRibbon
  • PHPExcel_Writer_Excel2007_RelsVBA
  • PHPExcel_Writer_Excel2007_StringTable
  • PHPExcel_Writer_Excel2007_Style
  • PHPExcel_Writer_Excel2007_Theme
  • PHPExcel_Writer_Excel2007_Workbook
  • PHPExcel_Writer_Excel2007_Worksheet
  • PHPExcel_Writer_Excel2007_WriterPart
  • PHPExcel_Writer_Excel5
  • PHPExcel_Writer_Excel5_BIFFwriter
  • PHPExcel_Writer_Excel5_Escher
  • PHPExcel_Writer_Excel5_Font
  • PHPExcel_Writer_Excel5_Parser
  • PHPExcel_Writer_Excel5_Workbook
  • PHPExcel_Writer_Excel5_Worksheet
  • PHPExcel_Writer_Excel5_Xf
  • PHPExcel_Writer_HTML
  • PHPExcel_Writer_PDF
  • PHPExcel_Writer_PDF_Core
  • PHPExcel_Writer_PDF_DomPDF
  • PHPExcel_Writer_PDF_mPDF
  • PHPExcel_Writer_PDF_tcPDF
  • Provincia
  • Radiacion
  • SingularValueDecomposition
  • Sistema
  • trendClass
  • xajax
  • xajaxArgumentManager
  • xajaxCallableObject
  • xajaxCallableObjectPlugin
  • xajaxControl
  • xajaxControlContainer
  • xajaxCustomRequest
  • xajaxCustomResponse
  • xajaxEvent
  • xajaxEventPlugin
  • xajaxFunctionPlugin
  • xajaxIncludeClientScriptPlugin
  • xajaxLanguageManager
  • xajaxPlugin
  • xajaxPluginManager
  • xajaxRequest
  • xajaxRequestPlugin
  • xajaxResponse
  • xajaxResponseManager
  • xajaxResponsePlugin
  • xajaxScriptPlugin
  • xajaxUserFunction
  • XMLWriter

Interfaces

  • DateTimeInterface
  • Iterator
  • PHPExcel_CachedObjectStorage_ICache
  • PHPExcel_Cell_IValueBinder
  • PHPExcel_IComparable
  • PHPExcel_Reader_IReader
  • PHPExcel_Reader_IReadFilter
  • PHPExcel_RichText_ITextElement
  • PHPExcel_Writer_IWriter
  • Throwable
  • Traversable

Exceptions

  • Exception
  • PHPExcel_Calculation_Exception
  • PHPExcel_Chart_Exception
  • PHPExcel_Exception
  • PHPExcel_Reader_Exception
  • PHPExcel_Writer_Exception

Functions

  • acosh
  • agregar_elemento
  • asinh
  • atanh
  • borrar_elementos
  • borrar_gdm_ab
  • borrar_irradiacion
  • borrar_latitud
  • borrar_panel
  • borrar_periodo
  • borrar_pmp_min_pmp_max
  • borrar_radiacion
  • borrar_resumen
  • borrar_sistema
  • borrar_sombra
  • gdm_ab
  • grabar_resumen
  • historial
  • hypo
  • irradiacion
  • JAMAError
  • latitud
  • limpiar_historial
  • login
  • mb_str_replace
  • mostrar_energia_total_ch
  • mostrar_panel_md_th
  • mostrar_panel_th
  • mostrar_radiacion_md_th
  • mostrar_radiacion_th
  • mostrar_resumen_th
  • panel
  • PclZipUtilCopyBlock
  • PclZipUtilOptionText
  • PclZipUtilPathInclusion
  • PclZipUtilPathReduction
  • PclZipUtilRename
  • PclZipUtilTranslateWinPath
  • periodo
  • pmp_min_pmp_max
  • preparar_panel
  • preparar_radiacion
  • preparar_radiacion_media
  • radiacion
  • resumen
  • sistema
  • sombra
  • xajaxCompressFile
  • xajaxErrorHandler
  • Overview
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo
  • Download
  1: <?php
  2: /**
  3:  * PHPExcel
  4:  *
  5:  * Copyright (c) 2006 - 2014 PHPExcel
  6:  *
  7:  * This library is free software; you can redistribute it and/or
  8:  * modify it under the terms of the GNU Lesser General Public
  9:  * License as published by the Free Software Foundation; either
 10:  * version 2.1 of the License, or (at your option) any later version.
 11:  *
 12:  * This library is distributed in the hope that it will be useful,
 13:  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 14:  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 15:  * Lesser General Public License for more details.
 16:  *
 17:  * You should have received a copy of the GNU Lesser General Public
 18:  * License along with this library; if not, write to the Free Software
 19:  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 20:  *
 21:  * @category    PHPExcel
 22:  * @package     PHPExcel_Calculation
 23:  * @copyright   Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
 24:  * @license     http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt   LGPL
 25:  * @version     1.8.0, 2014-03-02
 26:  */
 27: 
 28: 
 29: /** PHPExcel root directory */
 30: if (!defined('PHPEXCEL_ROOT')) {
 31:     /**
 32:      * @ignore
 33:      */
 34:     define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../../');
 35:     require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
 36: }
 37: 
 38: 
 39: /**
 40:  * PHPExcel_Calculation_TextData
 41:  *
 42:  * @category    PHPExcel
 43:  * @package     PHPExcel_Calculation
 44:  * @copyright   Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
 45:  */
 46: class PHPExcel_Calculation_TextData {
 47: 
 48:     private static $_invalidChars = Null;
 49: 
 50:     private static function _uniord($c) {
 51:         if (ord($c{0}) >=0 && ord($c{0}) <= 127)
 52:             return ord($c{0});
 53:         if (ord($c{0}) >= 192 && ord($c{0}) <= 223)
 54:             return (ord($c{0})-192)*64 + (ord($c{1})-128);
 55:         if (ord($c{0}) >= 224 && ord($c{0}) <= 239)
 56:             return (ord($c{0})-224)*4096 + (ord($c{1})-128)*64 + (ord($c{2})-128);
 57:         if (ord($c{0}) >= 240 && ord($c{0}) <= 247)
 58:             return (ord($c{0})-240)*262144 + (ord($c{1})-128)*4096 + (ord($c{2})-128)*64 + (ord($c{3})-128);
 59:         if (ord($c{0}) >= 248 && ord($c{0}) <= 251)
 60:             return (ord($c{0})-248)*16777216 + (ord($c{1})-128)*262144 + (ord($c{2})-128)*4096 + (ord($c{3})-128)*64 + (ord($c{4})-128);
 61:         if (ord($c{0}) >= 252 && ord($c{0}) <= 253)
 62:             return (ord($c{0})-252)*1073741824 + (ord($c{1})-128)*16777216 + (ord($c{2})-128)*262144 + (ord($c{3})-128)*4096 + (ord($c{4})-128)*64 + (ord($c{5})-128);
 63:         if (ord($c{0}) >= 254 && ord($c{0}) <= 255) //error
 64:             return PHPExcel_Calculation_Functions::VALUE();
 65:         return 0;
 66:     }   //  function _uniord()
 67: 
 68:     /**
 69:      * CHARACTER
 70:      *
 71:      * @param   string  $character  Value
 72:      * @return  int
 73:      */
 74:     public static function CHARACTER($character) {
 75:         $character  = PHPExcel_Calculation_Functions::flattenSingleValue($character);
 76: 
 77:         if ((!is_numeric($character)) || ($character < 0)) {
 78:             return PHPExcel_Calculation_Functions::VALUE();
 79:         }
 80: 
 81:         if (function_exists('mb_convert_encoding')) {
 82:             return mb_convert_encoding('&#'.intval($character).';', 'UTF-8', 'HTML-ENTITIES');
 83:         } else {
 84:             return chr(intval($character));
 85:         }
 86:     }
 87: 
 88: 
 89:     /**
 90:      * TRIMNONPRINTABLE
 91:      *
 92:      * @param   mixed   $stringValue    Value to check
 93:      * @return  string
 94:      */
 95:     public static function TRIMNONPRINTABLE($stringValue = '') {
 96:         $stringValue    = PHPExcel_Calculation_Functions::flattenSingleValue($stringValue);
 97: 
 98:         if (is_bool($stringValue)) {
 99:             return ($stringValue) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
100:         }
101: 
102:         if (self::$_invalidChars == Null) {
103:             self::$_invalidChars = range(chr(0),chr(31));
104:         }
105: 
106:         if (is_string($stringValue) || is_numeric($stringValue)) {
107:             return str_replace(self::$_invalidChars,'',trim($stringValue,"\x00..\x1F"));
108:         }
109:         return NULL;
110:     }   //  function TRIMNONPRINTABLE()
111: 
112: 
113:     /**
114:      * TRIMSPACES
115:      *
116:      * @param   mixed   $stringValue    Value to check
117:      * @return  string
118:      */
119:     public static function TRIMSPACES($stringValue = '') {
120:         $stringValue    = PHPExcel_Calculation_Functions::flattenSingleValue($stringValue);
121: 
122:         if (is_bool($stringValue)) {
123:             return ($stringValue) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
124:         }
125: 
126:         if (is_string($stringValue) || is_numeric($stringValue)) {
127:             return trim(preg_replace('/ +/',' ',trim($stringValue,' ')));
128:         }
129:         return NULL;
130:     }   //  function TRIMSPACES()
131: 
132: 
133:     /**
134:      * ASCIICODE
135:      *
136:      * @param   string  $characters     Value
137:      * @return  int
138:      */
139:     public static function ASCIICODE($characters) {
140:         if (($characters === NULL) || ($characters === ''))
141:             return PHPExcel_Calculation_Functions::VALUE();
142:         $characters = PHPExcel_Calculation_Functions::flattenSingleValue($characters);
143:         if (is_bool($characters)) {
144:             if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) {
145:                 $characters = (int) $characters;
146:             } else {
147:                 $characters = ($characters) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
148:             }
149:         }
150: 
151:         $character = $characters;
152:         if ((function_exists('mb_strlen')) && (function_exists('mb_substr'))) {
153:             if (mb_strlen($characters, 'UTF-8') > 1) { $character = mb_substr($characters, 0, 1, 'UTF-8'); }
154:             return self::_uniord($character);
155:         } else {
156:             if (strlen($characters) > 0) { $character = substr($characters, 0, 1); }
157:             return ord($character);
158:         }
159:     }   //  function ASCIICODE()
160: 
161: 
162:     /**
163:      * CONCATENATE
164:      *
165:      * @return  string
166:      */
167:     public static function CONCATENATE() {
168:         // Return value
169:         $returnValue = '';
170: 
171:         // Loop through arguments
172:         $aArgs = PHPExcel_Calculation_Functions::flattenArray(func_get_args());
173:         foreach ($aArgs as $arg) {
174:             if (is_bool($arg)) {
175:                 if (PHPExcel_Calculation_Functions::getCompatibilityMode() == PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE) {
176:                     $arg = (int) $arg;
177:                 } else {
178:                     $arg = ($arg) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
179:                 }
180:             }
181:             $returnValue .= $arg;
182:         }
183: 
184:         // Return
185:         return $returnValue;
186:     }   //  function CONCATENATE()
187: 
188: 
189:     /**
190:      * DOLLAR
191:      *
192:      * This function converts a number to text using currency format, with the decimals rounded to the specified place.
193:      * The format used is $#,##0.00_);($#,##0.00)..
194:      *
195:      * @param   float   $value          The value to format
196:      * @param   int     $decimals       The number of digits to display to the right of the decimal point.
197:      *                                  If decimals is negative, number is rounded to the left of the decimal point.
198:      *                                  If you omit decimals, it is assumed to be 2
199:      * @return  string
200:      */
201:     public static function DOLLAR($value = 0, $decimals = 2) {
202:         $value      = PHPExcel_Calculation_Functions::flattenSingleValue($value);
203:         $decimals   = is_null($decimals) ? 0 : PHPExcel_Calculation_Functions::flattenSingleValue($decimals);
204: 
205:         // Validate parameters
206:         if (!is_numeric($value) || !is_numeric($decimals)) {
207:             return PHPExcel_Calculation_Functions::NaN();
208:         }
209:         $decimals = floor($decimals);
210: 
211:         $mask = '$#,##0';
212:         if ($decimals > 0) {
213:             $mask .= '.' . str_repeat('0',$decimals);
214:         } else {
215:             $round = pow(10,abs($decimals));
216:             if ($value < 0) { $round = 0-$round; }
217:             $value = PHPExcel_Calculation_MathTrig::MROUND($value, $round);
218:         }
219: 
220:         return PHPExcel_Style_NumberFormat::toFormattedString($value, $mask);
221: 
222:     }   //  function DOLLAR()
223: 
224: 
225:     /**
226:      * SEARCHSENSITIVE
227:      *
228:      * @param   string  $needle     The string to look for
229:      * @param   string  $haystack   The string in which to look
230:      * @param   int     $offset     Offset within $haystack
231:      * @return  string
232:      */
233:     public static function SEARCHSENSITIVE($needle,$haystack,$offset=1) {
234:         $needle     = PHPExcel_Calculation_Functions::flattenSingleValue($needle);
235:         $haystack   = PHPExcel_Calculation_Functions::flattenSingleValue($haystack);
236:         $offset     = PHPExcel_Calculation_Functions::flattenSingleValue($offset);
237: 
238:         if (!is_bool($needle)) {
239:             if (is_bool($haystack)) {
240:                 $haystack = ($haystack) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
241:             }
242: 
243:             if (($offset > 0) && (PHPExcel_Shared_String::CountCharacters($haystack) > $offset)) {
244:                 if (PHPExcel_Shared_String::CountCharacters($needle) == 0) {
245:                     return $offset;
246:                 }
247:                 if (function_exists('mb_strpos')) {
248:                     $pos = mb_strpos($haystack, $needle, --$offset, 'UTF-8');
249:                 } else {
250:                     $pos = strpos($haystack, $needle, --$offset);
251:                 }
252:                 if ($pos !== false) {
253:                     return ++$pos;
254:                 }
255:             }
256:         }
257:         return PHPExcel_Calculation_Functions::VALUE();
258:     }   //  function SEARCHSENSITIVE()
259: 
260: 
261:     /**
262:      * SEARCHINSENSITIVE
263:      *
264:      * @param   string  $needle     The string to look for
265:      * @param   string  $haystack   The string in which to look
266:      * @param   int     $offset     Offset within $haystack
267:      * @return  string
268:      */
269:     public static function SEARCHINSENSITIVE($needle,$haystack,$offset=1) {
270:         $needle     = PHPExcel_Calculation_Functions::flattenSingleValue($needle);
271:         $haystack   = PHPExcel_Calculation_Functions::flattenSingleValue($haystack);
272:         $offset     = PHPExcel_Calculation_Functions::flattenSingleValue($offset);
273: 
274:         if (!is_bool($needle)) {
275:             if (is_bool($haystack)) {
276:                 $haystack = ($haystack) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
277:             }
278: 
279:             if (($offset > 0) && (PHPExcel_Shared_String::CountCharacters($haystack) > $offset)) {
280:                 if (PHPExcel_Shared_String::CountCharacters($needle) == 0) {
281:                     return $offset;
282:                 }
283:                 if (function_exists('mb_stripos')) {
284:                     $pos = mb_stripos($haystack, $needle, --$offset,'UTF-8');
285:                 } else {
286:                     $pos = stripos($haystack, $needle, --$offset);
287:                 }
288:                 if ($pos !== false) {
289:                     return ++$pos;
290:                 }
291:             }
292:         }
293:         return PHPExcel_Calculation_Functions::VALUE();
294:     }   //  function SEARCHINSENSITIVE()
295: 
296: 
297:     /**
298:      * FIXEDFORMAT
299:      *
300:      * @param   mixed       $value  Value to check
301:      * @param   integer     $decimals
302:      * @param   boolean     $no_commas
303:      * @return  boolean
304:      */
305:     public static function FIXEDFORMAT($value, $decimals = 2, $no_commas = FALSE) {
306:         $value      = PHPExcel_Calculation_Functions::flattenSingleValue($value);
307:         $decimals   = PHPExcel_Calculation_Functions::flattenSingleValue($decimals);
308:         $no_commas  = PHPExcel_Calculation_Functions::flattenSingleValue($no_commas);
309: 
310:         // Validate parameters
311:         if (!is_numeric($value) || !is_numeric($decimals)) {
312:             return PHPExcel_Calculation_Functions::NaN();
313:         }
314:         $decimals = floor($decimals);
315: 
316:         $valueResult = round($value,$decimals);
317:         if ($decimals < 0) { $decimals = 0; }
318:         if (!$no_commas) {
319:             $valueResult = number_format($valueResult,$decimals);
320:         }
321: 
322:         return (string) $valueResult;
323:     }   //  function FIXEDFORMAT()
324: 
325: 
326:     /**
327:      * LEFT
328:      *
329:      * @param   string  $value  Value
330:      * @param   int     $chars  Number of characters
331:      * @return  string
332:      */
333:     public static function LEFT($value = '', $chars = 1) {
334:         $value      = PHPExcel_Calculation_Functions::flattenSingleValue($value);
335:         $chars      = PHPExcel_Calculation_Functions::flattenSingleValue($chars);
336: 
337:         if ($chars < 0) {
338:             return PHPExcel_Calculation_Functions::VALUE();
339:         }
340: 
341:         if (is_bool($value)) {
342:             $value = ($value) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
343:         }
344: 
345:         if (function_exists('mb_substr')) {
346:             return mb_substr($value, 0, $chars, 'UTF-8');
347:         } else {
348:             return substr($value, 0, $chars);
349:         }
350:     }   //  function LEFT()
351: 
352: 
353:     /**
354:      * MID
355:      *
356:      * @param   string  $value  Value
357:      * @param   int     $start  Start character
358:      * @param   int     $chars  Number of characters
359:      * @return  string
360:      */
361:     public static function MID($value = '', $start = 1, $chars = null) {
362:         $value      = PHPExcel_Calculation_Functions::flattenSingleValue($value);
363:         $start      = PHPExcel_Calculation_Functions::flattenSingleValue($start);
364:         $chars      = PHPExcel_Calculation_Functions::flattenSingleValue($chars);
365: 
366:         if (($start < 1) || ($chars < 0)) {
367:             return PHPExcel_Calculation_Functions::VALUE();
368:         }
369: 
370:         if (is_bool($value)) {
371:             $value = ($value) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
372:         }
373: 
374:         if (function_exists('mb_substr')) {
375:             return mb_substr($value, --$start, $chars, 'UTF-8');
376:         } else {
377:             return substr($value, --$start, $chars);
378:         }
379:     }   //  function MID()
380: 
381: 
382:     /**
383:      * RIGHT
384:      *
385:      * @param   string  $value  Value
386:      * @param   int     $chars  Number of characters
387:      * @return  string
388:      */
389:     public static function RIGHT($value = '', $chars = 1) {
390:         $value      = PHPExcel_Calculation_Functions::flattenSingleValue($value);
391:         $chars      = PHPExcel_Calculation_Functions::flattenSingleValue($chars);
392: 
393:         if ($chars < 0) {
394:             return PHPExcel_Calculation_Functions::VALUE();
395:         }
396: 
397:         if (is_bool($value)) {
398:             $value = ($value) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
399:         }
400: 
401:         if ((function_exists('mb_substr')) && (function_exists('mb_strlen'))) {
402:             return mb_substr($value, mb_strlen($value, 'UTF-8') - $chars, $chars, 'UTF-8');
403:         } else {
404:             return substr($value, strlen($value) - $chars);
405:         }
406:     }   //  function RIGHT()
407: 
408: 
409:     /**
410:      * STRINGLENGTH
411:      *
412:      * @param   string  $value  Value
413:      * @return  string
414:      */
415:     public static function STRINGLENGTH($value = '') {
416:         $value      = PHPExcel_Calculation_Functions::flattenSingleValue($value);
417: 
418:         if (is_bool($value)) {
419:             $value = ($value) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
420:         }
421: 
422:         if (function_exists('mb_strlen')) {
423:             return mb_strlen($value, 'UTF-8');
424:         } else {
425:             return strlen($value);
426:         }
427:     }   //  function STRINGLENGTH()
428: 
429: 
430:     /**
431:      * LOWERCASE
432:      *
433:      * Converts a string value to upper case.
434:      *
435:      * @param   string      $mixedCaseString
436:      * @return  string
437:      */
438:     public static function LOWERCASE($mixedCaseString) {
439:         $mixedCaseString    = PHPExcel_Calculation_Functions::flattenSingleValue($mixedCaseString);
440: 
441:         if (is_bool($mixedCaseString)) {
442:             $mixedCaseString = ($mixedCaseString) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
443:         }
444: 
445:         return PHPExcel_Shared_String::StrToLower($mixedCaseString);
446:     }   //  function LOWERCASE()
447: 
448: 
449:     /**
450:      * UPPERCASE
451:      *
452:      * Converts a string value to upper case.
453:      *
454:      * @param   string      $mixedCaseString
455:      * @return  string
456:      */
457:     public static function UPPERCASE($mixedCaseString) {
458:         $mixedCaseString    = PHPExcel_Calculation_Functions::flattenSingleValue($mixedCaseString);
459: 
460:         if (is_bool($mixedCaseString)) {
461:             $mixedCaseString = ($mixedCaseString) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
462:         }
463: 
464:         return PHPExcel_Shared_String::StrToUpper($mixedCaseString);
465:     }   //  function UPPERCASE()
466: 
467: 
468:     /**
469:      * PROPERCASE
470:      *
471:      * Converts a string value to upper case.
472:      *
473:      * @param   string      $mixedCaseString
474:      * @return  string
475:      */
476:     public static function PROPERCASE($mixedCaseString) {
477:         $mixedCaseString    = PHPExcel_Calculation_Functions::flattenSingleValue($mixedCaseString);
478: 
479:         if (is_bool($mixedCaseString)) {
480:             $mixedCaseString = ($mixedCaseString) ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
481:         }
482: 
483:         return PHPExcel_Shared_String::StrToTitle($mixedCaseString);
484:     }   //  function PROPERCASE()
485: 
486: 
487:     /**
488:      * REPLACE
489:      *
490:      * @param   string  $oldText    String to modify
491:      * @param   int     $start      Start character
492:      * @param   int     $chars      Number of characters
493:      * @param   string  $newText    String to replace in defined position 
494:      * @return  string
495:      */
496:     public static function REPLACE($oldText = '', $start = 1, $chars = null, $newText) {
497:         $oldText    = PHPExcel_Calculation_Functions::flattenSingleValue($oldText);
498:         $start      = PHPExcel_Calculation_Functions::flattenSingleValue($start);
499:         $chars      = PHPExcel_Calculation_Functions::flattenSingleValue($chars);
500:         $newText    = PHPExcel_Calculation_Functions::flattenSingleValue($newText);
501: 
502:         $left = self::LEFT($oldText,$start-1);
503:         $right = self::RIGHT($oldText,self::STRINGLENGTH($oldText)-($start+$chars)+1);
504: 
505:         return $left.$newText.$right;
506:     }   //  function REPLACE()
507: 
508: 
509:     /**
510:      * SUBSTITUTE
511:      *
512:      * @param   string  $text       Value
513:      * @param   string  $fromText   From Value
514:      * @param   string  $toText     To Value
515:      * @param   integer $instance   Instance Number
516:      * @return  string
517:      */
518:     public static function SUBSTITUTE($text = '', $fromText = '', $toText = '', $instance = 0) {
519:         $text       = PHPExcel_Calculation_Functions::flattenSingleValue($text);
520:         $fromText   = PHPExcel_Calculation_Functions::flattenSingleValue($fromText);
521:         $toText     = PHPExcel_Calculation_Functions::flattenSingleValue($toText);
522:         $instance   = floor(PHPExcel_Calculation_Functions::flattenSingleValue($instance));
523: 
524:         if ($instance == 0) {
525:             if(function_exists('mb_str_replace')) {
526:                 return mb_str_replace($fromText,$toText,$text);
527:             } else {
528:                 return str_replace($fromText,$toText,$text);
529:             }
530:         } else {
531:             $pos = -1;
532:             while($instance > 0) {
533:                 if (function_exists('mb_strpos')) {
534:                     $pos = mb_strpos($text, $fromText, $pos+1, 'UTF-8');
535:                 } else {
536:                     $pos = strpos($text, $fromText, $pos+1);
537:                 }
538:                 if ($pos === false) {
539:                     break;
540:                 }
541:                 --$instance;
542:             }
543:             if ($pos !== false) {
544:                 if (function_exists('mb_strlen')) {
545:                     return self::REPLACE($text,++$pos,mb_strlen($fromText, 'UTF-8'),$toText);
546:                 } else {
547:                     return self::REPLACE($text,++$pos,strlen($fromText),$toText);
548:                 }
549:             }
550:         }
551: 
552:         return $text;
553:     }   //  function SUBSTITUTE()
554: 
555: 
556:     /**
557:      * RETURNSTRING
558:      *
559:      * @param   mixed   $testValue  Value to check
560:      * @return  boolean
561:      */
562:     public static function RETURNSTRING($testValue = '') {
563:         $testValue  = PHPExcel_Calculation_Functions::flattenSingleValue($testValue);
564: 
565:         if (is_string($testValue)) {
566:             return $testValue;
567:         }
568:         return Null;
569:     }   //  function RETURNSTRING()
570: 
571: 
572:     /**
573:      * TEXTFORMAT
574:      *
575:      * @param   mixed   $value  Value to check
576:      * @param   string  $format Format mask to use
577:      * @return  boolean
578:      */
579:     public static function TEXTFORMAT($value,$format) {
580:         $value  = PHPExcel_Calculation_Functions::flattenSingleValue($value);
581:         $format = PHPExcel_Calculation_Functions::flattenSingleValue($format);
582: 
583:         if ((is_string($value)) && (!is_numeric($value)) && PHPExcel_Shared_Date::isDateTimeFormatCode($format)) {
584:             $value = PHPExcel_Calculation_DateTime::DATEVALUE($value);
585:         }
586: 
587:         return (string) PHPExcel_Style_NumberFormat::toFormattedString($value,$format);
588:     }   //  function TEXTFORMAT()
589: 
590: }   //  class PHPExcel_Calculation_TextData
591: 
Autene API documentation generated by ApiGen