summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/workben/cache.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/sc/workben/cache.py b/sc/workben/cache.py
index da2fe2e82290..ba96abe9758b 100644
--- a/sc/workben/cache.py
+++ b/sc/workben/cache.py
@@ -35,6 +35,17 @@ def parse_block(data, index):
index += 4
vals[start_row + i] = data[index:index+str_length].decode("utf-8")
index += str_length
+ elif block_type == 3:
+ # formula block
+ read_rows = 0
+ while read_rows < data_size:
+ formula_group_size = struct.unpack('Q', data[index:index+8])[0]
+ index += 8
+ str_length = struct.unpack('i', data[index:index+4])[0]
+ index += 4
+ vals[start_row + read_rows] = (data[index:index+str_length].decode("utf-8"), "formula group length %i"% formula_group_size)
+ read_rows += formula_group_size
+ index += str_length
return index, data_size, vals