Update 2024-10-08 05:05:31
This commit is contained in:
parent
492bab1f36
commit
43edf4dee7
@ -8,15 +8,14 @@
|
||||
```
|
||||
# final class ChunkReadFilter (Details)
|
||||
> namespace: **VDM\Joomla\Componentbuilder\Spreadsheet**
|
||||
> extends: **IReadFilter**
|
||||
|
||||
```uml
|
||||
@startuml
|
||||
class ChunkReadFilter << (F,LightGreen) >> #RoyalBlue {
|
||||
- $startRow
|
||||
- $endRow
|
||||
- int $startRow
|
||||
- int $endRow
|
||||
+ __construct(int $startRow, int $chunkSize)
|
||||
+ readCell(string $column, int $row, ...) : bool
|
||||
+ readCell(string $columnAddress, int $row, ...) : bool
|
||||
}
|
||||
|
||||
note right of ChunkReadFilter::__construct
|
||||
@ -30,9 +29,9 @@ note right of ChunkReadFilter::readCell
|
||||
return: bool
|
||||
|
||||
arguments:
|
||||
string $column
|
||||
string $columnAddress
|
||||
int $row
|
||||
string|null $worksheetName = null
|
||||
string $worksheetName = ''
|
||||
end note
|
||||
|
||||
@enduml
|
||||
|
@ -20,14 +20,14 @@ use PhpOffice\PhpSpreadsheet\Reader\IReadFilter;
|
||||
*
|
||||
* @since 3.2.0
|
||||
*/
|
||||
final class ChunkReadFilter extends IReadFilter
|
||||
final class ChunkReadFilter implements IReadFilter
|
||||
{
|
||||
/**
|
||||
* The first row to read in the current chunk.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private $startRow;
|
||||
private int $startRow;
|
||||
|
||||
/**
|
||||
* The last row to read in the current chunk.
|
||||
@ -35,7 +35,7 @@ final class ChunkReadFilter extends IReadFilter
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private $endRow;
|
||||
private int $endRow;
|
||||
|
||||
/**
|
||||
* Constructor to initialize the chunk filter.
|
||||
@ -58,7 +58,7 @@ final class ChunkReadFilter extends IReadFilter
|
||||
*
|
||||
* @return bool Whether the cell should be read.
|
||||
*/
|
||||
public function readCell($column, $row, $worksheetName = null)
|
||||
public function readCell(string $columnAddress, int $row, string $worksheetName = ''): bool
|
||||
{
|
||||
// Only read rows that fall within the chunk range
|
||||
if ($row >= $this->startRow && $row <= $this->endRow)
|
||||
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private $startRow;
|
||||
private int $startRow;
|
||||
|
||||
/**
|
||||
* The last row to read in the current chunk.
|
||||
@ -11,7 +11,7 @@
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private $endRow;
|
||||
private int $endRow;
|
||||
|
||||
/**
|
||||
* Constructor to initialize the chunk filter.
|
||||
@ -34,7 +34,7 @@
|
||||
*
|
||||
* @return bool Whether the cell should be read.
|
||||
*/
|
||||
public function readCell($column, $row, $worksheetName = null)
|
||||
public function readCell(string $columnAddress, int $row, string $worksheetName = ''): bool
|
||||
{
|
||||
// Only read rows that fall within the chunk range
|
||||
if ($row >= $this->startRow && $row <= $this->endRow)
|
||||
|
@ -1,9 +1,11 @@
|
||||
{
|
||||
"add_head": "0",
|
||||
"add_licensing_template": "2",
|
||||
"extends": "-1",
|
||||
"extends": "",
|
||||
"guid": "9ae018a5-9064-40ed-ad69-9c1ed2a459f5",
|
||||
"implements": null,
|
||||
"implements": [
|
||||
"-1"
|
||||
],
|
||||
"load_selection": null,
|
||||
"name": "ChunkReadFilter",
|
||||
"power_version": "1.0.0",
|
||||
@ -13,7 +15,7 @@
|
||||
"extendsinterfaces": null,
|
||||
"namespace": "[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Spreadsheet.ChunkReadFilter",
|
||||
"description": "Chunk Read Filter Class\r\n\r\n@since 3.2.0",
|
||||
"extends_custom": "IReadFilter",
|
||||
"implements_custom": "IReadFilter",
|
||||
"licensing_template": "\/**\r\n * @package Joomla.Component.Builder\r\n *\r\n * @created 4th September, 2022\r\n * @author Llewellyn van der Merwe <https:\/\/dev.vdm.io>\r\n * @git Joomla Component Builder <https:\/\/git.vdm.dev\/joomla\/Component-Builder>\r\n * @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.\r\n * @license GNU General Public License version 2 or later; see LICENSE.txt\r\n *\/\r\n",
|
||||
"head": "",
|
||||
"composer": {
|
||||
|
@ -27,10 +27,10 @@
|
||||
"namespace0": {
|
||||
"use": "PhpOffice\\PhpSpreadsheet\\IOFactory"
|
||||
},
|
||||
"namespace2": {
|
||||
"namespace1": {
|
||||
"use": "PhpOffice\\PhpSpreadsheet\\Reader\\Exception as ReaderException"
|
||||
},
|
||||
"namespace3": {
|
||||
"namespace2": {
|
||||
"use": "PhpOffice\\PhpSpreadsheet\\Exception as SpreadsheetException"
|
||||
}
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ final class Header
|
||||
}
|
||||
|
||||
try {
|
||||
$chunkFilter = new ChunkReadFilter(20, 1);
|
||||
$chunkFilter = new ChunkReadFilter(1, 20);
|
||||
$inputFileType = IOFactory::identify($filePath);
|
||||
$reader = IOFactory::createReader($inputFileType);
|
||||
$reader->setReadFilter($chunkFilter);
|
||||
|
@ -15,7 +15,7 @@
|
||||
}
|
||||
|
||||
try {
|
||||
$chunkFilter = new ChunkReadFilter(20, 1);
|
||||
$chunkFilter = new ChunkReadFilter(1, 20);
|
||||
$inputFileType = IOFactory::identify($filePath);
|
||||
$reader = IOFactory::createReader($inputFileType);
|
||||
$reader->setReadFilter($chunkFilter);
|
||||
|
Loading…
Reference in New Issue
Block a user