Skip to content

Commit bc9234e

Browse files
authored
Process Comments in Sylk File (#2277)
Fixes issue #2276.
1 parent de5f450 commit bc9234e

File tree

3 files changed

+42
-0
lines changed

3 files changed

+42
-0
lines changed

src/PhpSpreadsheet/Reader/Slk.php

+9
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,15 @@ private function processCRecord(array $rowData, Spreadsheet &$spreadsheet, strin
294294
case 'E':
295295
$this->processFormula($rowDatum, $hasCalculatedValue, $cellDataFormula, $row, $column);
296296

297+
break;
298+
case 'A':
299+
$comment = substr($rowDatum, 1);
300+
$columnLetter = Coordinate::stringFromColumnIndex((int) $column);
301+
$spreadsheet->getActiveSheet()
302+
->getComment("$columnLetter$row")
303+
->getText()
304+
->createText($comment);
305+
297306
break;
298307
}
299308
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace PhpOffice\PhpSpreadsheetTests\Reader\Slk;
4+
5+
use PhpOffice\PhpSpreadsheet\Reader\Slk;
6+
7+
class SlkCommentsTest extends \PHPUnit\Framework\TestCase
8+
{
9+
public function testComments(): void
10+
{
11+
$testbook = 'tests/data/Reader/Slk/issue.2276.slk';
12+
$reader = new Slk();
13+
$spreadsheet = $reader->load($testbook);
14+
$sheet = $spreadsheet->getActiveSheet();
15+
$comments = $sheet->getComments();
16+
self::assertCount(2, $comments);
17+
self::assertArrayHasKey('A1', $comments);
18+
self::assertArrayHasKey('B2', $comments);
19+
self::assertSame("Zeratul:\nEn Taro Adun!", $sheet->getComment('A1')->getText()->getPlainText());
20+
self::assertSame("Arthas:\nFrostmourne Hungers.", $sheet->getComment('B2')->getText()->getPlainText());
21+
$spreadsheet->disconnectWorksheets();
22+
}
23+
}

tests/data/Reader/Slk/issue.2276.slk

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
ID;PWXL;N;E
2+
P;PGeneral
3+
F;P0;DG0G10;M320
4+
B;Y3;X1;D0 0 9 0
5+
C;Y1;X1;AZeratul: :En Taro Adun!
6+
C;Y2;X2;AArthas: :Frostmourne Hungers.
7+
C;Y1;X1;K1
8+
C;Y1;X2;K2
9+
C;Y2;X1;K3
10+
E

0 commit comments

Comments
 (0)