[Libreoffice-commits] .: src/xlsrecord.py src/xlsstream.py

Kohei Yoshida kohei at kemper.freedesktop.org
Thu Mar 1 12:41:06 PST 2012


 src/xlsrecord.py |   35 +++++++++++++++++++++++++++++++++--
 src/xlsstream.py |    3 ++-
 2 files changed, 35 insertions(+), 3 deletions(-)

New commits:
commit 980a33eb78ee294c7ec701343c7f07108ca70d9a
Author: Kohei Yoshida <kohei.yoshida at suse.com>
Date:   Thu Mar 1 15:41:20 2012 -0500

    Handlers for SXInt and SXRng.

diff --git a/src/xlsrecord.py b/src/xlsrecord.py
index 5526773..4393c8f 100644
--- a/src/xlsrecord.py
+++ b/src/xlsrecord.py
@@ -3617,9 +3617,14 @@ class SXError(BaseRecordHandler):
         pass
 
 
-class SXInteger(BaseRecordHandler):
+class SXInt(BaseRecordHandler):
+
+    def __parseBytes (self):
+        self.num = self.readSignedInt(2)
+
     def parseBytes (self):
-        pass
+        self.__parseBytes()
+        self.appendLineInt("value", self.num)
 
 
 class SXString(BaseRecordHandler):
@@ -3632,6 +3637,32 @@ class SXString(BaseRecordHandler):
         self.__parseBytes()
         self.appendLineString("value", self.text)
 
+
+class SXRng(BaseRecordHandler):
+
+    groupTypes = [
+        "numeric value",
+        "seconds",
+        "minutes",
+        "hours",
+        "days",
+        "months",
+        "quarters",
+        "years"
+    ]
+
+    def __parseBytes (self):
+        flag = self.readUnsignedInt(2)
+        self.fAutoStart = (flag & 0x0001) != 0 # A
+        self.fAutoEnd   = (flag & 0x0002) != 0 # B
+        self.iByType    = (flag & 0x001C) / 4  # C
+
+    def parseBytes (self):
+        self.__parseBytes()
+        self.appendLineBoolean("auto start", self.fAutoStart)
+        self.appendLineBoolean("auto end", self.fAutoEnd)
+        self.appendLineString("group type", globals.getValueOrUnknown(SXRng.groupTypes, self.iByType))
+
 # -------------------------------------------------------------------
 # CT - Change Tracking
 
diff --git a/src/xlsstream.py b/src/xlsstream.py
index c8664c2..aab6ce5 100644
--- a/src/xlsstream.py
+++ b/src/xlsstream.py
@@ -141,7 +141,7 @@ recData = {
     0x00C9: ["SXDOUBLE", "Double Value", xlsrecord.SXDouble],
     0x00CA: ["SXBOOLEAN", "Boolean Value", xlsrecord.SXBoolean],
     0x00CB: ["SXERROR", "Error Code", xlsrecord.SXError],
-    0x00CC: ["SXINTEGER", "Integer Value", xlsrecord.SXInteger],
+    0x00CC: ["SXINT", "Integer Value", xlsrecord.SXInt],
     0x00CD: ["SXSTRING", "String", xlsrecord.SXString],
     0x00CE: ["SXDTR", "Date & Time Special Format", xlsrecord.SXDtr],
     0x00CF: ["SXEMPTY", "Empty Value"],
@@ -152,6 +152,7 @@ recData = {
     0x00D5: ["SXSTREAMID", "PivotCache Stream ID", xlsrecord.SXStreamID],
     0x00D6: ["RSTRING", "Cell with Character Formatting"],
     0x00D7: ["DBCELL", "Stream Offsets", xlsrecord.DBCell],
+    0x00D8: ["SXRNG", "Numeric/Date Grouping Properties", xlsrecord.SXRng],
     0x00DA: ["BOOKBOOL", "Workbook Option Flag"],
     0x00DC: ["PARAMQRY", "Query Parameters"],
     0x00DC: ["SXEXT", "External Source Information"],


More information about the Libreoffice-commits mailing list