diff --git a/samples/Reader/01_Simple_file_reader_using_IOFactory.php b/samples/Reader/01_Simple_file_reader_using_IOFactory.php index 622df2312..9a39d0f7c 100644 --- a/samples/Reader/01_Simple_file_reader_using_IOFactory.php +++ b/samples/Reader/01_Simple_file_reader_using_IOFactory.php @@ -7,5 +7,6 @@ require __DIR__ . '/../Header.php'; $inputFileName = __DIR__ . '/sampleData/example1.xls'; $helper->log('Loading file ' . /** @scrutinizer ignore-type */ pathinfo($inputFileName, PATHINFO_BASENAME) . ' using IOFactory to identify the format'); $spreadsheet = IOFactory::load($inputFileName); + $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); -var_dump($sheetData); +$helper->displayGrid($sheetData); diff --git a/samples/Reader/02_Simple_file_reader_using_a_specified_reader.php b/samples/Reader/02_Simple_file_reader_using_a_specified_reader.php index 9d4ea6865..f6812f135 100644 --- a/samples/Reader/02_Simple_file_reader_using_a_specified_reader.php +++ b/samples/Reader/02_Simple_file_reader_using_a_specified_reader.php @@ -10,4 +10,4 @@ $reader = new Xls(); $spreadsheet = $reader->load($inputFileName); $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); -var_dump($sheetData); +$helper->displayGrid($sheetData); diff --git a/samples/Reader/03_Simple_file_reader_using_the_IOFactory_to_return_a_reader.php b/samples/Reader/03_Simple_file_reader_using_the_IOFactory_to_return_a_reader.php index 47b5264cd..b7fba6e64 100644 --- a/samples/Reader/03_Simple_file_reader_using_the_IOFactory_to_return_a_reader.php +++ b/samples/Reader/03_Simple_file_reader_using_the_IOFactory_to_return_a_reader.php @@ -12,4 +12,4 @@ $reader = IOFactory::createReader($inputFileType); $spreadsheet = $reader->load($inputFileName); $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); -var_dump($sheetData); +$helper->displayGrid($sheetData); diff --git a/samples/Reader/04_Simple_file_reader_using_the_IOFactory_to_identify_a_reader_to_use.php b/samples/Reader/04_Simple_file_reader_using_the_IOFactory_to_identify_a_reader_to_use.php index 3a7dd0659..99f3583b4 100644 --- a/samples/Reader/04_Simple_file_reader_using_the_IOFactory_to_identify_a_reader_to_use.php +++ b/samples/Reader/04_Simple_file_reader_using_the_IOFactory_to_identify_a_reader_to_use.php @@ -14,4 +14,4 @@ $reader = IOFactory::createReader($inputFileType); $spreadsheet = $reader->load($inputFileName); $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); -var_dump($sheetData); +$helper->displayGrid($sheetData); diff --git a/samples/Reader/05_Simple_file_reader_using_the_read_data_only_option.php b/samples/Reader/05_Simple_file_reader_using_the_read_data_only_option.php index 912040a12..9d26607e7 100644 --- a/samples/Reader/05_Simple_file_reader_using_the_read_data_only_option.php +++ b/samples/Reader/05_Simple_file_reader_using_the_read_data_only_option.php @@ -14,4 +14,4 @@ $reader->setReadDataOnly(true); $spreadsheet = $reader->load($inputFileName); $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); -var_dump($sheetData); +$helper->displayGrid($sheetData); diff --git a/samples/Reader/09_Simple_file_reader_using_a_read_filter.php b/samples/Reader/09_Simple_file_reader_using_a_read_filter.php index 4603164c6..beea8d1e8 100644 --- a/samples/Reader/09_Simple_file_reader_using_a_read_filter.php +++ b/samples/Reader/09_Simple_file_reader_using_a_read_filter.php @@ -15,8 +15,8 @@ class MyReadFilter implements IReadFilter { public function readCell($columnAddress, $row, $worksheetName = '') { - // Read rows 1 to 7 and columns A to E only - if ($row >= 1 && $row <= 7) { + // Read rows 9 to 15 and columns A to E only + if ($row >= 9 && $row <= 15) { if (in_array($columnAddress, range('A', 'E'))) { return true; } @@ -29,6 +29,7 @@ class MyReadFilter implements IReadFilter $filterSubset = new MyReadFilter(); $helper->log('Loading file ' . /** @scrutinizer ignore-type */ pathinfo($inputFileName, PATHINFO_BASENAME) . ' using IOFactory with a defined reader type of ' . $inputFileType); +$helper->log('Filter range is A9:E15'); $reader = IOFactory::createReader($inputFileType); $helper->log('Loading Sheet "' . $sheetname . '" only'); $reader->setLoadSheetsOnly($sheetname); @@ -36,5 +37,6 @@ $helper->log('Loading Sheet using filter'); $reader->setReadFilter($filterSubset); $spreadsheet = $reader->load($inputFileName); -$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); -var_dump($sheetData); +$activeRange = $spreadsheet->getActiveSheet()->calculateWorksheetDataDimension(); +$sheetData = $spreadsheet->getActiveSheet()->rangeToArray($activeRange, null, true, true, true); +$helper->displayGrid($sheetData); diff --git a/samples/Reader/10_Simple_file_reader_using_a_configurable_read_filter.php b/samples/Reader/10_Simple_file_reader_using_a_configurable_read_filter.php index 82ca22349..b5fecbff6 100644 --- a/samples/Reader/10_Simple_file_reader_using_a_configurable_read_filter.php +++ b/samples/Reader/10_Simple_file_reader_using_a_configurable_read_filter.php @@ -41,6 +41,7 @@ class MyReadFilter implements IReadFilter $filterSubset = new MyReadFilter(9, 15, range('G', 'K')); $helper->log('Loading file ' . /** @scrutinizer ignore-type */ pathinfo($inputFileName, PATHINFO_BASENAME) . ' using IOFactory with a defined reader type of ' . $inputFileType); +$helper->log('Filter range is G9:K15'); $reader = IOFactory::createReader($inputFileType); $helper->log('Loading Sheet "' . $sheetname . '" only'); $reader->setLoadSheetsOnly($sheetname); @@ -48,5 +49,6 @@ $helper->log('Loading Sheet using configurable filter'); $reader->setReadFilter($filterSubset); $spreadsheet = $reader->load($inputFileName); -$sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); -var_dump($sheetData); +$activeRange = $spreadsheet->getActiveSheet()->calculateWorksheetDataDimension(); +$sheetData = $spreadsheet->getActiveSheet()->rangeToArray($activeRange, null, true, true, true); +$helper->displayGrid($sheetData); diff --git a/samples/Reader/11_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_(version_1).php b/samples/Reader/11_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_(version_1).php index cf070054b..d3de92e74 100644 --- a/samples/Reader/11_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_(version_1).php +++ b/samples/Reader/11_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_(version_1).php @@ -59,6 +59,7 @@ for ($startRow = 2; $startRow <= 240; $startRow += $chunkSize) { // Do some processing here - $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); - var_dump($sheetData); + $activeRange = $spreadsheet->getActiveSheet()->calculateWorksheetDataDimension(); + $sheetData = $spreadsheet->getActiveSheet()->rangeToArray($activeRange, null, true, true, true); + $helper->displayGrid($sheetData); } diff --git a/samples/Reader/12_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_(version_2).php b/samples/Reader/12_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_(version_2).php index 13692e3aa..8c023ca45 100644 --- a/samples/Reader/12_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_(version_2).php +++ b/samples/Reader/12_Reading_a_workbook_in_chunks_using_a_configurable_read_filter_(version_2).php @@ -62,6 +62,7 @@ for ($startRow = 2; $startRow <= 240; $startRow += $chunkSize) { // Do some processing here - $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); - var_dump($sheetData); + $activeRange = $spreadsheet->getActiveSheet()->calculateWorksheetDataDimension(); + $sheetData = $spreadsheet->getActiveSheet()->rangeToArray($activeRange, null, true, true, true); + $helper->displayGrid($sheetData); } diff --git a/samples/Reader/13_Simple_file_reader_for_multiple_CSV_files.php b/samples/Reader/13_Simple_file_reader_for_multiple_CSV_files.php index 9cba25a2d..9435f9721 100644 --- a/samples/Reader/13_Simple_file_reader_for_multiple_CSV_files.php +++ b/samples/Reader/13_Simple_file_reader_for_multiple_CSV_files.php @@ -23,6 +23,8 @@ $loadedSheetNames = $spreadsheet->getSheetNames(); foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) { $helper->log('Worksheet #' . $sheetIndex . ' -> ' . $loadedSheetName . ''); $spreadsheet->setActiveSheetIndexByName($loadedSheetName); - $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); - var_dump($sheetData); + + $activeRange = $spreadsheet->getActiveSheet()->calculateWorksheetDataDimension(); + $sheetData = $spreadsheet->getActiveSheet()->rangeToArray($activeRange, null, true, true, true); + $helper->displayGrid($sheetData); } diff --git a/samples/Reader/14_Reading_a_large_CSV_file_in_chunks_to_split_across_multiple_worksheets.php b/samples/Reader/14_Reading_a_large_CSV_file_in_chunks_to_split_across_multiple_worksheets.php index eab7ec01d..f33a9b486 100644 --- a/samples/Reader/14_Reading_a_large_CSV_file_in_chunks_to_split_across_multiple_worksheets.php +++ b/samples/Reader/14_Reading_a_large_CSV_file_in_chunks_to_split_across_multiple_worksheets.php @@ -80,6 +80,8 @@ $loadedSheetNames = $spreadsheet->getSheetNames(); foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) { $helper->log('Worksheet #' . $sheetIndex . ' -> ' . $loadedSheetName . ''); $spreadsheet->setActiveSheetIndexByName($loadedSheetName); - $sheetData = $spreadsheet->getActiveSheet()->toArray(null, false, false, true); - var_dump($sheetData); + + $activeRange = $spreadsheet->getActiveSheet()->calculateWorksheetDataDimension(); + $sheetData = $spreadsheet->getActiveSheet()->rangeToArray($activeRange, null, true, true, true); + $helper->displayGrid($sheetData); } diff --git a/samples/Reader/15_Simple_file_reader_for_tab_separated_value_file_using_the_Advanced_Value_Binder.php b/samples/Reader/15_Simple_file_reader_for_tab_separated_value_file_using_the_Advanced_Value_Binder.php index 848452c75..2f63fd0de 100644 --- a/samples/Reader/15_Simple_file_reader_for_tab_separated_value_file_using_the_Advanced_Value_Binder.php +++ b/samples/Reader/15_Simple_file_reader_for_tab_separated_value_file_using_the_Advanced_Value_Binder.php @@ -21,20 +21,26 @@ $loadedSheetNames = $spreadsheet->getSheetNames(); foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) { $helper->log('Worksheet #' . $sheetIndex . ' -> ' . $loadedSheetName . ' (Formatted)'); $spreadsheet->setActiveSheetIndexByName($loadedSheetName); - $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); - var_dump($sheetData); + + $activeRange = $spreadsheet->getActiveSheet()->calculateWorksheetDataDimension(); + $sheetData = $spreadsheet->getActiveSheet()->rangeToArray($activeRange, null, true, true, true); + $helper->displayGrid($sheetData); } foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) { $helper->log('Worksheet #' . $sheetIndex . ' -> ' . $loadedSheetName . ' (Unformatted)'); $spreadsheet->setActiveSheetIndexByName($loadedSheetName); - $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, false, true); - var_dump($sheetData); + + $activeRange = $spreadsheet->getActiveSheet()->calculateWorksheetDataDimension(); + $sheetData = $spreadsheet->getActiveSheet()->rangeToArray($activeRange, null, true, true, true); + $helper->displayGrid($sheetData); } foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) { $helper->log('Worksheet #' . $sheetIndex . ' -> ' . $loadedSheetName . ' (Raw)'); $spreadsheet->setActiveSheetIndexByName($loadedSheetName); - $sheetData = $spreadsheet->getActiveSheet()->toArray(null, false, false, true); - var_dump($sheetData); + + $activeRange = $spreadsheet->getActiveSheet()->calculateWorksheetDataDimension(); + $sheetData = $spreadsheet->getActiveSheet()->rangeToArray($activeRange, null, true, true, true); + $helper->displayGrid($sheetData); } diff --git a/samples/Reader/21_Reader_CSV_Long_Integers_with_String_Value_Binder.php b/samples/Reader/21_Reader_CSV_Long_Integers_with_String_Value_Binder.php index ec37b39a6..34d99d0ac 100644 --- a/samples/Reader/21_Reader_CSV_Long_Integers_with_String_Value_Binder.php +++ b/samples/Reader/21_Reader_CSV_Long_Integers_with_String_Value_Binder.php @@ -22,6 +22,8 @@ $loadedSheetNames = $spreadsheet->getSheetNames(); foreach ($loadedSheetNames as $sheetIndex => $loadedSheetName) { $helper->log('Worksheet #' . $sheetIndex . ' -> ' . $loadedSheetName . ' (Formatted)'); $spreadsheet->setActiveSheetIndexByName($loadedSheetName); - $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); - var_dump($sheetData); + + $activeRange = $spreadsheet->getActiveSheet()->calculateWorksheetDataDimension(); + $sheetData = $spreadsheet->getActiveSheet()->rangeToArray($activeRange, null, true, true, true); + $helper->displayGrid($sheetData); } diff --git a/samples/Reader/sampleData/example1.xls b/samples/Reader/sampleData/example1.xls index bd9bb110b..5f7eb47a4 100644 Binary files a/samples/Reader/sampleData/example1.xls and b/samples/Reader/sampleData/example1.xls differ diff --git a/src/PhpSpreadsheet/Helper/TextGrid.php b/src/PhpSpreadsheet/Helper/TextGrid.php index f4ed63765..3a4a98f02 100644 --- a/src/PhpSpreadsheet/Helper/TextGrid.php +++ b/src/PhpSpreadsheet/Helper/TextGrid.php @@ -51,7 +51,7 @@ class TextGrid $this->gridDisplay = $this->isCli ? '' : '
';
$maxRow = max($this->rows);
- $maxRowLength = strlen((string) $maxRow) + 1;
+ $maxRowLength = mb_strlen((string) $maxRow) + 1;
$columnWidths = $this->getColumnWidths();
$this->renderColumnHeader($maxRowLength, $columnWidths);
@@ -75,9 +75,9 @@ class TextGrid
private function renderCells(array $rowData, array $columnWidths): void
{
foreach ($rowData as $column => $cell) {
- $cell = ($this->isCli) ? (string) $cell : htmlentities((string) $cell);
+ $displayCell = ($this->isCli) ? (string) $cell : htmlentities((string) $cell);
$this->gridDisplay .= '| ';
- $this->gridDisplay .= str_pad($cell, $columnWidths[$column] + 1, ' ');
+ $this->gridDisplay .= $displayCell . str_repeat(' ', $columnWidths[$column] - mb_strlen($cell ?? '') + 1);
}
}
@@ -126,12 +126,12 @@ class TextGrid
foreach ($columnData as $columnValue) {
if (is_string($columnValue)) {
- $columnWidth = max($columnWidth, strlen($columnValue));
+ $columnWidth = max($columnWidth, mb_strlen($columnValue));
} elseif (is_bool($columnValue)) {
- $columnWidth = max($columnWidth, strlen($columnValue ? 'TRUE' : 'FALSE'));
+ $columnWidth = max($columnWidth, mb_strlen($columnValue ? 'TRUE' : 'FALSE'));
}
- $columnWidth = max($columnWidth, strlen((string) $columnWidth));
+ $columnWidth = max($columnWidth, mb_strlen((string) $columnWidth));
}
return $columnWidth;