[Libreoffice-commits] .: src/xlsrecord.py src/xlsstream.py
Kohei Yoshida
kohei at kemper.freedesktop.org
Fri Jan 20 20:19:48 PST 2012
src/xlsrecord.py | 30 +++++++++++++++++++++++++++++-
src/xlsstream.py | 3 ++-
2 files changed, 31 insertions(+), 2 deletions(-)
New commits:
commit ae360336389ce7cf15cc7501cf50454ae5929e2c
Author: Kohei Yoshida <kohei.yoshida at suse.com>
Date: Fri Jan 20 23:19:32 2012 -0500
Parse shared formula records.
diff --git a/src/xlsrecord.py b/src/xlsrecord.py
index 11c2fce..9e31317 100644
--- a/src/xlsrecord.py
+++ b/src/xlsrecord.py
@@ -1,6 +1,6 @@
########################################################################
#
-# Copyright (c) 2010 Kohei Yoshida
+# Copyright (c) 2010-2012 Kohei Yoshida
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation
@@ -2631,6 +2631,34 @@ class FeatureHeader(BaseRecordHandler):
return
+class ShrFmla(BaseRecordHandler):
+
+ def __parseBytes (self):
+ self.ref = RefU(self)
+ self.readBytes(1) # 8-bits reserved
+ self.cUse = self.readUnsignedInt(1)
+ lenFormula = self.readUnsignedInt(2)
+ self.tokens = self.readBytes(lenFormula)
+
+ def parseBytes (self):
+ self.__parseBytes()
+ self.appendLine("range: %s"%self.ref.toString())
+ self.appendLine("cell count: %d"%self.cUse)
+ self.appendLine("formula token length: %d"%len(self.tokens))
+ if len(self.tokens):
+ ftext = None
+ try:
+ parser = formula.FormulaParser(self.header, self.tokens)
+ parser.parse()
+ ftext = parser.getText()
+ except formula.FormulaParserError as e:
+ ftext = "(Error: %s)"%e.args[0]
+ if ftext != None:
+ self.appendLine("formula: %s"%ftext)
+
+
+
+
# -------------------------------------------------------------------
# SX - Pivot Table
diff --git a/src/xlsstream.py b/src/xlsstream.py
index bb9f6ae..57b5e13 100644
--- a/src/xlsstream.py
+++ b/src/xlsstream.py
@@ -1,6 +1,6 @@
########################################################################
#
-# Copyright (c) 2010 Kohei Yoshida
+# Copyright (c) 2010-2012 Kohei Yoshida
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation
@@ -220,6 +220,7 @@ recData = {
0x027E: ["RK", "Cell with Encoded Integer or Floating-Point", xlsrecord.RK],
0x0293: ["STYLE", "Style Information", xlsrecord.Style],
0x041E: ["FORMAT", "Number Format", xlsrecord.Format],
+ 0x04BC: ["SHRFMLA", "Shared Formula", xlsrecord.ShrFmla],
0x0802: ["QSISXTAG", "Pivot Table and Query Table Extensions", xlsrecord.PivotQueryTableEx],
0x0809: ["BOF", "Beginning of File", xlsrecord.BOF],
0x0810: ["SXVIEWEX9", "Pivot Table Extensions", xlsrecord.SXViewEx9],
More information about the Libreoffice-commits
mailing list