prevent export and invoice from breaking on equal sign (#2054)

This commit is contained in:
Kevin Papst
2020-10-23 02:00:50 +02:00
committed by GitHub
parent 4533c994a3
commit 2ad8f8a4bb
4 changed files with 10 additions and 2 deletions

View File

@@ -21,6 +21,7 @@ use App\Repository\Query\CustomerQuery;
use App\Repository\Query\TimesheetQuery;
use App\Twig\DateExtensions;
use DateTime;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use PhpOffice\PhpSpreadsheet\Shared\Date;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Border;
@@ -312,7 +313,7 @@ abstract class AbstractSpreadsheetRenderer
$columns['description']['render'] = function (Worksheet $sheet, int $row, int $column, ExportItemInterface $entity) use (&$isColumnFormatted, $maxWidth, $wrapText) {
$cell = $sheet->getCellByColumnAndRow($column, $row);
$cell->setValue($entity->getDescription());
$cell->setValueExplicit($entity->getDescription(), DataType::TYPE_STRING);
// Apply wrap text if configured
if ($wrapText) {

View File

@@ -12,6 +12,7 @@ namespace App\Invoice\Renderer;
use App\Entity\InvoiceDocument;
use App\Invoice\InvoiceModel;
use PhpOffice\PhpSpreadsheet\Cell\Cell;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
@@ -93,7 +94,11 @@ abstract class AbstractSpreadsheetRenderer extends AbstractRenderer
$value = str_replace($searchKey, $content, $value);
}
$cell->setValue($value);
if (\is_string($value)) {
$cell->setValueExplicit($value, DataType::TYPE_STRING);
} else {
$cell->setValue($value);
}
}
if ($sheetValues !== false && $entryRow < $invoiceItemCount - 1) {

View File

@@ -140,6 +140,7 @@ abstract class AbstractRendererTest extends KernelTestCase
->setDuration(400)
->setRate(1947.99)
->setUser($user2)
->setDescription('== jhg ljhg ') // make sure that spreadsheets don't render it as formula
->setActivity($activity)
->setProject($project)
->setBegin(new \DateTime())

View File

@@ -162,6 +162,7 @@ trait RendererTestTrait
->setRate(111.11)
->setUser($user1)
->setActivity($activity2)
->setDescription('== jhg ljhg ') // make sure that spreadsheets don't render it as formula
->setProject($project2)
->setBegin(new \DateTime())
->setEnd(new \DateTime())