!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/uploads/script/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Ods/   drwxr-xr-x
Free 13.29 GB of 57.97 GB (22.92%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     NamedExpressions.php (4.27 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace PhpOffice\PhpSpreadsheet\Writer\Ods;

use 
PhpOffice\PhpSpreadsheet\Calculation\Calculation;
use 
PhpOffice\PhpSpreadsheet\DefinedName;
use 
PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
use 
PhpOffice\PhpSpreadsheet\Spreadsheet;
use 
PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;

class 
NamedExpressions
{
    private 
$objWriter;

    private 
$spreadsheet;

    private 
$formulaConvertor;

    public function 
__construct(XMLWriter $objWriterSpreadsheet $spreadsheet$formulaConvertor)
    {
        
$this->objWriter $objWriter;
        
$this->spreadsheet $spreadsheet;
        
$this->formulaConvertor $formulaConvertor;
    }

    public function 
write(): void
    
{
        
$this->objWriter->startElement('table:named-expressions');
        
$this->writeExpressions();
        
$this->objWriter->endElement();
    }

    private function 
writeExpressions(): void
    
{
        
$definedNames $this->spreadsheet->getDefinedNames();

        foreach (
$definedNames as $definedName) {
            if (
$definedName->isFormula()) {
                
$this->objWriter->startElement('table:named-expression');
                
$this->writeNamedFormula($definedName$this->spreadsheet->getActiveSheet());
            } else {
                
$this->objWriter->startElement('table:named-range');
                
$this->writeNamedRange($definedName);
            }

            
$this->objWriter->endElement();
        }
    }

    private function 
writeNamedFormula(DefinedName $definedNameWorksheet $defaultWorksheet): void
    
{
        
$this->objWriter->writeAttribute('table:name'$definedName->getName());
        
$this->objWriter->writeAttribute(
            
'table:expression',
            
$this->formulaConvertor->convertFormula($definedName->getValue(), $definedName->getWorksheet()->getTitle())
        );
        
$this->objWriter->writeAttribute('table:base-cell-address'$this->convertAddress(
            
$definedName,
            
"'" . (($definedName->getWorksheet() !== null) ? $definedName->getWorksheet()->getTitle() : $defaultWorksheet->getTitle()) . "'!\$A\$1"
        
));
    }

    private function 
writeNamedRange(DefinedName $definedName): void
    
{
        
$this->objWriter->writeAttribute('table:name'$definedName->getName());
        
$this->objWriter->writeAttribute('table:base-cell-address'$this->convertAddress(
            
$definedName,
            
"'" $definedName->getWorksheet()->getTitle() . "'!\$A\$1"
        
));
        
$this->objWriter->writeAttribute('table:cell-range-address'$this->convertAddress($definedName$definedName->getValue()));
    }

    private function 
convertAddress(DefinedName $definedNamestring $address): string
    
{
        
$splitCount preg_match_all(
            
'/' Calculation::CALCULATION_REGEXP_CELLREF_RELATIVE '/mui',
            
$address,
            
$splitRanges,
            
PREG_OFFSET_CAPTURE
        
);

        
$lengths array_map('strlen'array_column($splitRanges[0], 0));
        
$offsets array_column($splitRanges[0], 1);

        
$worksheets $splitRanges[2];
        
$columns $splitRanges[6];
        
$rows $splitRanges[7];

        while (
$splitCount 0) {
            --
$splitCount;
            
$length $lengths[$splitCount];
            
$offset $offsets[$splitCount];
            
$worksheet $worksheets[$splitCount][0];
            
$column $columns[$splitCount][0];
            
$row $rows[$splitCount][0];

            
$newRange '';
            if (empty(
$worksheet)) {
                if ((
$offset === 0) || ($address[$offset 1] !== ':')) {
                    
// We need a worksheet
                    
$worksheet $definedName->getWorksheet()->getTitle();
                }
            } else {
                
$worksheet str_replace("''""'"trim($worksheet"'"));
            }
            if (!empty(
$worksheet)) {
                
$newRange "'" str_replace("'""''"$worksheet) . "'.";
            }

            if (!empty(
$column)) {
                
$newRange .= $column;
            }
            if (!empty(
$row)) {
                
$newRange .= $row;
            }

            
$address substr($address0$offset) . $newRange substr($address$offset $length);
        }

        if (
substr($address01) === '=') {
            
$address substr($address1);
        }

        return 
$address;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0052 ]--