From 1d38fca715937e4f26371ce7e68d2e216c46be19 Mon Sep 17 00:00:00 2001 From: Stephen Sweetland Date: Thu, 25 May 2017 11:06:32 +0100 Subject: [PATCH 1/2] Update CellHelper.php New function, try to identify a formula string --- src/Spout/Writer/Common/Helper/CellHelper.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Spout/Writer/Common/Helper/CellHelper.php b/src/Spout/Writer/Common/Helper/CellHelper.php index 50ead93..0bee960 100644 --- a/src/Spout/Writer/Common/Helper/CellHelper.php +++ b/src/Spout/Writer/Common/Helper/CellHelper.php @@ -64,6 +64,17 @@ class CellHelper return (gettype($value) === 'string' && $value !== ''); } + /** + * Returns whether the given value looks like a formula + * + * @param $value + * @return bool whether the given value looks like a formula + */ + public static function isFormulaString($value) + { + return (strpos($value,'=') === 0); + } + /** * Returns whether the given value is numeric. * A numeric value is from type "integer" or "double" ("float" is not returned by gettype). From 8ac86cb254228d9faaa9d23e9936e840ef7d4dc3 Mon Sep 17 00:00:00 2001 From: Stephen Sweetland Date: Thu, 25 May 2017 11:07:36 +0100 Subject: [PATCH 2/2] Update Worksheet.php Supporting *writing* formulas in XLSX files is truly trivial. --- src/Spout/Writer/XLSX/Internal/Worksheet.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Spout/Writer/XLSX/Internal/Worksheet.php b/src/Spout/Writer/XLSX/Internal/Worksheet.php index b5a3dc7..1d853e6 100644 --- a/src/Spout/Writer/XLSX/Internal/Worksheet.php +++ b/src/Spout/Writer/XLSX/Internal/Worksheet.php @@ -212,8 +212,10 @@ EOD; $columnIndex = CellHelper::getCellIndexFromColumnIndex($cellNumber); $cellXML = '0'; // seriously, that's it. + } else if (CellHelper::isNonEmptyString($cellValue)) { $cellXML .= $this->getCellXMLFragmentForNonEmptyString($cellValue); } else if (CellHelper::isBoolean($cellValue)) { $cellXML .= ' t="b">' . intval($cellValue) . '';