From f1ab2f022fdc780aca0944d90e9a0e844a0820d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Mon, 27 May 2024 13:12:17 +0200 Subject: =?UTF-8?q?2024-02-19:=20popravljen=20(prej=C5=A1nji=20commit=20je?= =?UTF-8?q?=20napa=C4=8Den)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../survey/excel/PHPExcel/Calculation/Database.php | 725 --------------------- 1 file changed, 725 deletions(-) delete mode 100644 admin/survey/excel/PHPExcel/Calculation/Database.php (limited to 'admin/survey/excel/PHPExcel/Calculation/Database.php') diff --git a/admin/survey/excel/PHPExcel/Calculation/Database.php b/admin/survey/excel/PHPExcel/Calculation/Database.php deleted file mode 100644 index 8159896..0000000 --- a/admin/survey/excel/PHPExcel/Calculation/Database.php +++ /dev/null @@ -1,725 +0,0 @@ - $criteriaName) { - $testCondition = array(); - $testConditionCount = 0; - foreach($criteria as $row => $criterion) { - if ($criterion[$key] > '') { - $testCondition[] = '[:'.$criteriaName.']'.PHPExcel_Calculation_Functions::_ifCondition($criterion[$key]); - $testConditionCount++; - } - } - if ($testConditionCount > 1) { - $testConditions[] = 'OR('.implode(',',$testCondition).')'; - $testConditionsCount++; - } elseif($testConditionCount == 1) { - $testConditions[] = $testCondition[0]; - $testConditionsCount++; - } - } - - if ($testConditionsCount > 1) { - $testConditionSet = 'AND('.implode(',',$testConditions).')'; - } elseif($testConditionsCount == 1) { - $testConditionSet = $testConditions[0]; - } - - // Loop through each row of the database - foreach($database as $dataRow => $dataValues) { - // Substitute actual values from the database row for our [:placeholders] - $testConditionList = $testConditionSet; - foreach($criteriaNames as $key => $criteriaName) { - $k = array_search($criteriaName,$fieldNames); - if (isset($dataValues[$k])) { - $dataValue = $dataValues[$k]; - $dataValue = (is_string($dataValue)) ? PHPExcel_Calculation::_wrapResult(strtoupper($dataValue)) : $dataValue; - $testConditionList = str_replace('[:'.$criteriaName.']',$dataValue,$testConditionList); - } - } - // evaluate the criteria against the row data - $result = PHPExcel_Calculation::getInstance()->_calculateFormulaValue('='.$testConditionList); - // If the row failed to meet the criteria, remove it from the database - if (!$result) { - unset($database[$dataRow]); - } - } - - return $database; - } - - - /** - * DAVERAGE - * - * Averages the values in a column of a list or database that match conditions you specify. - * - * Excel Function: - * DAVERAGE(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DAVERAGE($database,$field,$criteria) { - $field = self::__fieldExtract($database,$field); - if (is_null($field)) { - return NULL; - } - // reduce the database to a set of rows that match all the criteria - $database = self::__filter($database,$criteria); - // extract an array of values for the requested column - $colData = array(); - foreach($database as $row) { - $colData[] = $row[$field]; - } - - // Return - return PHPExcel_Calculation_Statistical::AVERAGE($colData); - } // function DAVERAGE() - - - /** - * DCOUNT - * - * Counts the cells that contain numbers in a column of a list or database that match conditions - * that you specify. - * - * Excel Function: - * DCOUNT(database,[field],criteria) - * - * Excel Function: - * DAVERAGE(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return integer - * - * @TODO The field argument is optional. If field is omitted, DCOUNT counts all records in the - * database that match the criteria. - * - */ - public static function DCOUNT($database,$field,$criteria) { - $field = self::__fieldExtract($database,$field); - if (is_null($field)) { - return NULL; - } - - // reduce the database to a set of rows that match all the criteria - $database = self::__filter($database,$criteria); - // extract an array of values for the requested column - $colData = array(); - foreach($database as $row) { - $colData[] = $row[$field]; - } - - // Return - return PHPExcel_Calculation_Statistical::COUNT($colData); - } // function DCOUNT() - - - /** - * DCOUNTA - * - * Counts the nonblank cells in a column of a list or database that match conditions that you specify. - * - * Excel Function: - * DCOUNTA(database,[field],criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return integer - * - * @TODO The field argument is optional. If field is omitted, DCOUNTA counts all records in the - * database that match the criteria. - * - */ - public static function DCOUNTA($database,$field,$criteria) { - $field = self::__fieldExtract($database,$field); - if (is_null($field)) { - return NULL; - } - - // reduce the database to a set of rows that match all the criteria - $database = self::__filter($database,$criteria); - // extract an array of values for the requested column - $colData = array(); - foreach($database as $row) { - $colData[] = $row[$field]; - } - - // Return - return PHPExcel_Calculation_Statistical::COUNTA($colData); - } // function DCOUNTA() - - - /** - * DGET - * - * Extracts a single value from a column of a list or database that matches conditions that you - * specify. - * - * Excel Function: - * DGET(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return mixed - * - */ - public static function DGET($database,$field,$criteria) { - $field = self::__fieldExtract($database,$field); - if (is_null($field)) { - return NULL; - } - - // reduce the database to a set of rows that match all the criteria - $database = self::__filter($database,$criteria); - // extract an array of values for the requested column - $colData = array(); - foreach($database as $row) { - $colData[] = $row[$field]; - } - - // Return - if (count($colData) > 1) { - return PHPExcel_Calculation_Functions::NaN(); - } - - return $colData[0]; - } // function DGET() - - - /** - * DMAX - * - * Returns the largest number in a column of a list or database that matches conditions you that - * specify. - * - * Excel Function: - * DMAX(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DMAX($database,$field,$criteria) { - $field = self::__fieldExtract($database,$field); - if (is_null($field)) { - return NULL; - } - - // reduce the database to a set of rows that match all the criteria - $database = self::__filter($database,$criteria); - // extract an array of values for the requested column - $colData = array(); - foreach($database as $row) { - $colData[] = $row[$field]; - } - - // Return - return PHPExcel_Calculation_Statistical::MAX($colData); - } // function DMAX() - - - /** - * DMIN - * - * Returns the smallest number in a column of a list or database that matches conditions you that - * specify. - * - * Excel Function: - * DMIN(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DMIN($database,$field,$criteria) { - $field = self::__fieldExtract($database,$field); - if (is_null($field)) { - return NULL; - } - - // reduce the database to a set of rows that match all the criteria - $database = self::__filter($database,$criteria); - // extract an array of values for the requested column - $colData = array(); - foreach($database as $row) { - $colData[] = $row[$field]; - } - - // Return - return PHPExcel_Calculation_Statistical::MIN($colData); - } // function DMIN() - - - /** - * DPRODUCT - * - * Multiplies the values in a column of a list or database that match conditions that you specify. - * - * Excel Function: - * DPRODUCT(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DPRODUCT($database,$field,$criteria) { - $field = self::__fieldExtract($database,$field); - if (is_null($field)) { - return NULL; - } - - // reduce the database to a set of rows that match all the criteria - $database = self::__filter($database,$criteria); - // extract an array of values for the requested column - $colData = array(); - foreach($database as $row) { - $colData[] = $row[$field]; - } - - // Return - return PHPExcel_Calculation_MathTrig::PRODUCT($colData); - } // function DPRODUCT() - - - /** - * DSTDEV - * - * Estimates the standard deviation of a population based on a sample by using the numbers in a - * column of a list or database that match conditions that you specify. - * - * Excel Function: - * DSTDEV(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DSTDEV($database,$field,$criteria) { - $field = self::__fieldExtract($database,$field); - if (is_null($field)) { - return NULL; - } - - // reduce the database to a set of rows that match all the criteria - $database = self::__filter($database,$criteria); - // extract an array of values for the requested column - $colData = array(); - foreach($database as $row) { - $colData[] = $row[$field]; - } - - // Return - return PHPExcel_Calculation_Statistical::STDEV($colData); - } // function DSTDEV() - - - /** - * DSTDEVP - * - * Calculates the standard deviation of a population based on the entire population by using the - * numbers in a column of a list or database that match conditions that you specify. - * - * Excel Function: - * DSTDEVP(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DSTDEVP($database,$field,$criteria) { - $field = self::__fieldExtract($database,$field); - if (is_null($field)) { - return NULL; - } - - // reduce the database to a set of rows that match all the criteria - $database = self::__filter($database,$criteria); - // extract an array of values for the requested column - $colData = array(); - foreach($database as $row) { - $colData[] = $row[$field]; - } - - // Return - return PHPExcel_Calculation_Statistical::STDEVP($colData); - } // function DSTDEVP() - - - /** - * DSUM - * - * Adds the numbers in a column of a list or database that match conditions that you specify. - * - * Excel Function: - * DSUM(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DSUM($database,$field,$criteria) { - $field = self::__fieldExtract($database,$field); - if (is_null($field)) { - return NULL; - } - - // reduce the database to a set of rows that match all the criteria - $database = self::__filter($database,$criteria); - // extract an array of values for the requested column - $colData = array(); - foreach($database as $row) { - $colData[] = $row[$field]; - } - - // Return - return PHPExcel_Calculation_MathTrig::SUM($colData); - } // function DSUM() - - - /** - * DVAR - * - * Estimates the variance of a population based on a sample by using the numbers in a column - * of a list or database that match conditions that you specify. - * - * Excel Function: - * DVAR(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DVAR($database,$field,$criteria) { - $field = self::__fieldExtract($database,$field); - if (is_null($field)) { - return NULL; - } - - // reduce the database to a set of rows that match all the criteria - $database = self::__filter($database,$criteria); - // extract an array of values for the requested column - $colData = array(); - foreach($database as $row) { - $colData[] = $row[$field]; - } - - // Return - return PHPExcel_Calculation_Statistical::VARFunc($colData); - } // function DVAR() - - - /** - * DVARP - * - * Calculates the variance of a population based on the entire population by using the numbers - * in a column of a list or database that match conditions that you specify. - * - * Excel Function: - * DVARP(database,field,criteria) - * - * @access public - * @category Database Functions - * @param mixed[] $database The range of cells that makes up the list or database. - * A database is a list of related data in which rows of related - * information are records, and columns of data are fields. The - * first row of the list contains labels for each column. - * @param string|integer $field Indicates which column is used in the function. Enter the - * column label enclosed between double quotation marks, such as - * "Age" or "Yield," or a number (without quotation marks) that - * represents the position of the column within the list: 1 for - * the first column, 2 for the second column, and so on. - * @param mixed[] $criteria The range of cells that contains the conditions you specify. - * You can use any range for the criteria argument, as long as it - * includes at least one column label and at least one cell below - * the column label in which you specify a condition for the - * column. - * @return float - * - */ - public static function DVARP($database,$field,$criteria) { - $field = self::__fieldExtract($database,$field); - if (is_null($field)) { - return NULL; - } - - // reduce the database to a set of rows that match all the criteria - $database = self::__filter($database,$criteria); - // extract an array of values for the requested column - $colData = array(); - foreach($database as $row) { - $colData[] = $row[$field]; - } - - // Return - return PHPExcel_Calculation_Statistical::VARP($colData); - } // function DVARP() - - -} // class PHPExcel_Calculation_Database -- cgit v1.2.3