mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-09-05 06:58:15 +00:00
Win For Scrutinizer
It pointed out a problem that I would have thought should result in test failure. Code corrected, and documentation updated to describe the unexpected behavior.
This commit is contained in:
@@ -42,7 +42,7 @@ $spreadsheet->getActiveSheet()
|
||||
If you make a call to `getCell()`, and the cell doesn't already exist, then
|
||||
PhpSpreadsheet will create that cell for you.
|
||||
|
||||
### BEWARE: Cells assigned to variables as a Detached Reference
|
||||
### BEWARE: Cells and Styles assigned to variables as a Detached Reference
|
||||
|
||||
As an "in-memory" model, PHPSpreadsheet can be very demanding of memory,
|
||||
particularly when working with large spreadsheets. One technique used to
|
||||
@@ -54,6 +54,7 @@ While this is not normally an issue, it can become significant
|
||||
if you assign the result of a call to `getCell()` to a variable. Any
|
||||
subsequent calls to retrieve other cells will change that pointer, although
|
||||
the cell object will still retain its data values.
|
||||
This is also true when assigning a variable to the result of `getStyle()`.
|
||||
|
||||
What does this mean? Consider the following code:
|
||||
|
||||
|
||||
@@ -41,14 +41,12 @@ class ExplicitStyle0Test extends TestCase
|
||||
$reader = new XlsxReader();
|
||||
$spreadsheet2 = $reader->load($this->outputFile);
|
||||
$sheet2 = $spreadsheet2->getActiveSheet();
|
||||
$styleA1 = $sheet2->getStyle('A1');
|
||||
self::assertTrue($styleA1->getFont()->getBold());
|
||||
self::assertFalse($styleA1->getFont()->getItalic());
|
||||
self::assertSame(Alignment::HORIZONTAL_CENTER, $styleA1->getAlignment()->getHorizontal());
|
||||
$styleA2 = $sheet2->getStyle('A2');
|
||||
self::assertTrue($styleA1->getFont()->getBold());
|
||||
self::assertTrue($styleA1->getFont()->getItalic());
|
||||
self::assertSame(Alignment::HORIZONTAL_CENTER, $styleA1->getAlignment()->getHorizontal());
|
||||
self::assertTrue($sheet2->getStyle('A1')->getFont()->getBold());
|
||||
self::assertFalse($sheet2->getStyle('A1')->getFont()->getItalic());
|
||||
self::assertSame(Alignment::HORIZONTAL_CENTER, $sheet2->getStyle('A1')->getAlignment()->getHorizontal());
|
||||
self::assertTrue($sheet2->getStyle('A2')->getFont()->getBold());
|
||||
self::assertTrue($sheet2->getStyle('A2')->getFont()->getItalic());
|
||||
self::assertSame(Alignment::HORIZONTAL_CENTER, $sheet2->getStyle('A2')->getAlignment()->getHorizontal());
|
||||
$spreadsheet2->disconnectWorksheets();
|
||||
|
||||
$file = 'zip://';
|
||||
@@ -82,14 +80,12 @@ class ExplicitStyle0Test extends TestCase
|
||||
$reader = new XlsxReader();
|
||||
$spreadsheet2 = $reader->load($this->outputFile);
|
||||
$sheet2 = $spreadsheet2->getActiveSheet();
|
||||
$styleA1 = $sheet2->getStyle('A1');
|
||||
self::assertTrue($styleA1->getFont()->getBold());
|
||||
self::assertFalse($styleA1->getFont()->getItalic());
|
||||
self::assertSame(Alignment::HORIZONTAL_CENTER, $styleA1->getAlignment()->getHorizontal());
|
||||
$styleA2 = $sheet2->getStyle('A2');
|
||||
self::assertTrue($styleA1->getFont()->getBold());
|
||||
self::assertTrue($styleA1->getFont()->getItalic());
|
||||
self::assertSame(Alignment::HORIZONTAL_CENTER, $styleA1->getAlignment()->getHorizontal());
|
||||
self::assertTrue($sheet2->getStyle('A1')->getFont()->getBold());
|
||||
self::assertFalse($sheet2->getStyle('A1')->getFont()->getItalic());
|
||||
self::assertSame(Alignment::HORIZONTAL_CENTER, $sheet2->getStyle('A1')->getAlignment()->getHorizontal());
|
||||
self::assertTrue($sheet2->getStyle('A2')->getFont()->getBold());
|
||||
self::assertTrue($sheet2->getStyle('A2')->getFont()->getItalic());
|
||||
self::assertSame(Alignment::HORIZONTAL_CENTER, $sheet2->getStyle('A2')->getAlignment()->getHorizontal());
|
||||
$spreadsheet2->disconnectWorksheets();
|
||||
|
||||
$file = 'zip://';
|
||||
|
||||
Reference in New Issue
Block a user