Merge pull request #2875 from dgeppo/master
Add removeCommentByColumnAndRow function
This commit is contained in:
commit
ed34a45891
|
|
@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org).
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
- Added `removeComment()` method for Worksheet [PR #2875](https://github.com/PHPOffice/PhpSpreadsheet/pull/2875/files)
|
||||||
- Add point size option for scatter charts [Issue #2298](https://github.com/PHPOffice/PhpSpreadsheet/issues/2298) [PR #2801](https://github.com/PHPOffice/PhpSpreadsheet/pull/2801)
|
- Add point size option for scatter charts [Issue #2298](https://github.com/PHPOffice/PhpSpreadsheet/issues/2298) [PR #2801](https://github.com/PHPOffice/PhpSpreadsheet/pull/2801)
|
||||||
- Basic support for Xlsx reading/writing Chart Sheets [PR #2830](https://github.com/PHPOffice/PhpSpreadsheet/pull/2830)
|
- Basic support for Xlsx reading/writing Chart Sheets [PR #2830](https://github.com/PHPOffice/PhpSpreadsheet/pull/2830)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2600,6 +2600,33 @@ class Worksheet implements IComparable
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove comment from cell.
|
||||||
|
*
|
||||||
|
* @param array<int>|CellAddress|string $cellCoordinate Coordinate of the cell as a string, eg: 'C5';
|
||||||
|
* or as an array of [$columnIndex, $row] (e.g. [3, 5]), or a CellAddress object.
|
||||||
|
*
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function removeComment($cellCoordinate)
|
||||||
|
{
|
||||||
|
$cellAddress = Functions::trimSheetFromCellReference(Validations::validateCellAddress($cellCoordinate));
|
||||||
|
|
||||||
|
if (Coordinate::coordinateIsRange($cellAddress)) {
|
||||||
|
throw new Exception('Cell coordinate string can not be a range of cells.');
|
||||||
|
} elseif (strpos($cellAddress, '$') !== false) {
|
||||||
|
throw new Exception('Cell coordinate string must not be absolute.');
|
||||||
|
} elseif ($cellAddress == '') {
|
||||||
|
throw new Exception('Cell coordinate can not be zero-length string.');
|
||||||
|
}
|
||||||
|
// Check if we have a comment for this cell and delete it
|
||||||
|
if (isset($this->comments[$cellAddress])) {
|
||||||
|
unset($this->comments[$cellAddress]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get comment for cell.
|
* Get comment for cell.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ namespace PhpOffice\PhpSpreadsheetTests;
|
||||||
use PhpOffice\PhpSpreadsheet\Comment;
|
use PhpOffice\PhpSpreadsheet\Comment;
|
||||||
use PhpOffice\PhpSpreadsheet\RichText\RichText;
|
use PhpOffice\PhpSpreadsheet\RichText\RichText;
|
||||||
use PhpOffice\PhpSpreadsheet\RichText\TextElement;
|
use PhpOffice\PhpSpreadsheet\RichText\TextElement;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||||
use PhpOffice\PhpSpreadsheet\Style\Alignment;
|
use PhpOffice\PhpSpreadsheet\Style\Alignment;
|
||||||
use PhpOffice\PhpSpreadsheet\Style\Color;
|
use PhpOffice\PhpSpreadsheet\Style\Color;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
|
|
@ -83,4 +84,14 @@ class CommentTest extends TestCase
|
||||||
$comment->setText($test);
|
$comment->setText($test);
|
||||||
self::assertEquals('This is a test comment', (string) $comment);
|
self::assertEquals('This is a test comment', (string) $comment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testRemoveComment(): void
|
||||||
|
{
|
||||||
|
$spreadsheet = new Spreadsheet();
|
||||||
|
$sheet = $spreadsheet->getActiveSheet();
|
||||||
|
$sheet->getComment('A2')->getText()->createText('Comment to delete');
|
||||||
|
self::assertArrayHasKey('A2', $sheet->getComments());
|
||||||
|
$sheet->removeComment('A2');
|
||||||
|
self::assertEmpty($sheet->getComments());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue