@@ -144,6 +144,22 @@ defmodule XlsxReader.Parsers.WorksheetParserTest do
144144 assert expected == sheets
145145 end
146146
147+ test "should return empty value when result of formulas is not set" , % { workbook: workbook } do
148+ sheet_xml =
149+ TestFixtures . read! ( "xml/worksheetWithFormulasWithoutValue.xml" )
150+ |> String . replace ( "\n " , "" )
151+ |> String . replace ( "\t " , "" )
152+
153+ expected = [
154+ [
155+ % Cell { value: "1" , formula: nil , ref: "A1" } ,
156+ % Cell { value: "" , formula: "SUM(A1:A3)" , ref: "B1" }
157+ ]
158+ ]
159+
160+ assert { :ok , expected } == WorksheetParser . parse ( sheet_xml , workbook , cell_data_format: :cell )
161+ end
162+
147163 test "should return shared formulas as part of Cell struct" , % { workbook: workbook } do
148164 sheet_xml =
149165 TestFixtures . read! ( "xml/worksheetWithSharedFormulas.xml" )
@@ -168,6 +184,36 @@ defmodule XlsxReader.Parsers.WorksheetParserTest do
168184 assert { :ok , expected } == WorksheetParser . parse ( sheet_xml , workbook , cell_data_format: :cell )
169185 end
170186
187+ test "should return empty value when result of shared formulas is not set" , % {
188+ workbook: workbook
189+ } do
190+ sheet_xml =
191+ TestFixtures . read! ( "xml/worksheetWithSharedFormulasWithoutValue.xml" )
192+ |> String . replace ( "\n " , "" )
193+ |> String . replace ( "\t " , "" )
194+
195+ expected = [
196+ [
197+ % XlsxReader.Cell { value: "1" , formula: nil , ref: "A1" } ,
198+ % XlsxReader.Cell { value: "" , formula: "SUM(A1:A3)" , ref: "B1" }
199+ ] ,
200+ [
201+ % XlsxReader.Cell { value: "2" , formula: nil , ref: "A2" } ,
202+ % XlsxReader.Cell { value: "" , formula: "SUM(A1:A3)" , ref: "B2" }
203+ ] ,
204+ [
205+ % XlsxReader.Cell { value: "3" , formula: nil , ref: "A3" } ,
206+ % XlsxReader.Cell { value: "" , formula: "SUM(A1:A3)" , ref: "B3" }
207+ ]
208+ ]
209+
210+ assert { :ok , expected } ==
211+ WorksheetParser . parse ( sheet_xml , workbook ,
212+ cell_data_format: :cell ,
213+ type_conversion: true
214+ )
215+ end
216+
171217 test "should include or exclude hidden sheets based on an option" do
172218 filepath = TestFixtures . path ( "hidden_sheets.xlsx" )
173219
0 commit comments