Change Tracker Comparison

This shows a comparison of the XML generated by change trackers for Gnumeric, Excel 2007, and OO Calc for some simple actions.

One of the main things I've noticed is that XL and OO change trackers focus much more on the final result than on the action performed. I'm sure there is a reason for that--hopefully for my sake it isn't a result of prior problems. I think it may be necessary to provide the collaboration functionalities (approve/reject changes) that XL and OO offer.

It's also worth noting that the Gnumeric version is still very much in its infancy. And at this point, the gnumeric xml is generated in a separate log file as commands are occuring, whereas the other versions are generated when a workbook is saved. In Excel, the changes are stored in revisionLog.xml files within the xl/revisions/ directory of the unzipped xlsx file. In OO Calc, the changes are stored in the table:tracked-changes element inside the content.xml file stored in the base directory of the unzipped file.

I performed the following steps in each of the programs to acheive these results:

Set Cell Text (in cell A1)

Gnumeric
  <Command type="CmdSetText" sheet="Sheet1" target="A1">
    <Text>test in A1</Text>
  </Command>
Excel 2007
  <rcc rId="1" sId="1">
    <nc r="A1" t="inlineStr">
      <is>
        <t>test in A1</t>
      </is>
    </nc>
  </rcc>
OO Calc
  <table:cell-content-change table:id="ct1">
    <table:cell-address table:column="0" table:row="0"
    table:table="0" />
    <office:change-info>
      <dc:creator>Opie</dc:creator>
      <dc:date>2008-07-17T19:04:07</dc:date>
    </office:change-info>
    <table:previous>
      <table:change-track-table-cell />
    </table:previous>
  </table:cell-content-change>

back to top

Set Area Text (in range B1:F4)

Gnumeric
  <Command type="CmdAreaSetText" sheet="Sheet1" target="B1:F4" asArray="0">
    <Text>test B1:F4</Text>
  </Command>
Excel 2007
  <rcc rId="8" sId="1">
    <nc r="B1" t="inlineStr">
      <is>
        <t>test B1:F4</t>
      </is>
    </nc>
  </rcc>
  <rcc rId="9" sId="1">
    <nc r="C1" t="inlineStr">
      <is>
        <t>test B1:F4</t>
      </is>
    </nc>
  </rcc>
  .
  .
  .
  <rcc rId="25" sId="1">
    <nc r="F4" t="inlineStr">
      <is>
        <t>test B1:F4</t>
      </is>
    </nc>
  </rcc>
OO Calc
  <table:cell-content-change table:id="ct5">
    <table:cell-address table:column="2" table:row="0"
    table:table="0" />
    <office:change-info>
      <dc:creator>Opie</dc:creator>
      <dc:date>2008-07-17T19:06:58</dc:date>
    </office:change-info>
    <table:previous>
      <table:change-track-table-cell />
    </table:previous>
  </table:cell-content-change>
  <table:cell-content-change table:id="ct6">
    <table:cell-address table:column="2" table:row="1"
    table:table="0" />
    <office:change-info>
      <dc:creator>Opie</dc:creator>
      <dc:date>2008-07-17T19:06:58</dc:date>
    </office:change-info>
    <table:previous>
      <table:change-track-table-cell />
    </table:previous>
  </table:cell-content-change>
  .
  .
  .
  <table:cell-content-change table:id="ct24">
    <table:cell-address table:column="6" table:row="5"
    table:table="0" />
    <office:change-info>
      <dc:creator>Opie</dc:creator>
      <dc:date>2008-07-17T19:06:58</dc:date>
    </office:change-info>
    <table:previous>
      <table:change-track-table-cell />
    </table:previous>
  </table:cell-content-change>

back to top

Insert Column (insert new column B)

Gnumeric
  <Command type="CmdInsDelColRow" sheet="Sheet1" isCol="1" isIns="1" index="1" count="1"/>
Excel 2007
  <rrc rId="26" sId="1" ref="B1:B1048576" action="insertCol" />
OO Calc
  <table:insertion table:id="ct25" table:type="column"
  table:position="1" table:table="0">
    <office:change-info>
      <dc:creator>Opie</dc:creator>
      <dc:date>2008-07-17T19:07:08</dc:date>
    </office:change-info>
  </table:insertion>

back to top

Insert Row (insert new row 2)

Gnumeric
  <Command type="CmdInsDelColRow" sheet="Sheet1" isCol="0" isIns="1" index="1" count="1"/>
Excel 2007
  <rrc rId="27" sId="1" ref="A2:XFD2" action="insertRow" />
OO Calc
  <table:insertion table:id="ct26" table:type="row"
  table:position="1" table:table="0">
    <office:change-info>
      <dc:creator>Opie</dc:creator>
      <dc:date>2008-07-17T19:07:12</dc:date>
    </office:change-info>
  </table:insertion>

back to top

Delete Col (delete column G)

Gnumeric
  <Command type="CmdInsDelColRow" sheet="Sheet1" isCol="1" isIns="0" index="6" count="1"/>
Excel 2007
  <rrc rId="28" sId="1" ref="G1:G1048576" action="deleteCol">
    <rfmt sheetId="1" xfDxf="1" sqref="G1:G1048576" start="0"
    length="0" />
    <rcc rId="0" sId="1">
      <nc r="G1" t="inlineStr">
        <is>
          <t>test B1:F4</t>
        </is>
      </nc>
    </rcc>
    <rcc rId="0" sId="1">
      <nc r="G3" t="inlineStr">
        <is>
          <t>test B1:F4</t>
        </is>
      </nc>
    </rcc>
    <rcc rId="0" sId="1">
      <nc r="G4" t="inlineStr">
        <is>
          <t>test B1:F4</t>
        </is>
      </nc>
    </rcc>
    <rcc rId="0" sId="1">
      <nc r="G5" t="inlineStr">
        <is>
          <t>test B1:F4</t>
        </is>
      </nc>
    </rcc>
  </rrc>
OO Calc
  <table:deletion table:id="ct27" table:type="column"
  table:position="6" table:table="0">
    <office:change-info>
      <dc:creator>Opie</dc:creator>
      <dc:date>2008-07-17T19:07:17</dc:date>
    </office:change-info>
    <table:deletions>
      <table:cell-content-deletion table:id="ct24">
        <table:change-track-table-cell office:value-type="string">

          <text:p>test B1:F4</text:p>
        </table:change-track-table-cell>
      </table:cell-content-deletion>
      <table:cell-content-deletion table:id="ct23">
        <table:change-track-table-cell office:value-type="string">

          <text:p>test B1:F4</text:p>
        </table:change-track-table-cell>
      </table:cell-content-deletion>
      <table:cell-content-deletion table:id="ct22">
        <table:change-track-table-cell office:value-type="string">

          <text:p>test B1:F4</text:p>
        </table:change-track-table-cell>
      </table:cell-content-deletion>
      <table:cell-content-deletion table:id="ct21">
        <table:change-track-table-cell office:value-type="string">

          <text:p>test B1:F4</text:p>
        </table:change-track-table-cell>
      </table:cell-content-deletion>
    </table:deletions>
  </table:deletion>

back to top

Delete Row (delete row 5)

Gnumeric
  <Command type="CmdInsDelColRow" sheet="Sheet1" isCol="0" isIns="0" index="4" count="1"/>
Excel 2007
  <rrc rId="29" sId="1" ref="A5:XFD5" action="deleteRow">
    <rfmt sheetId="1" xfDxf="1" sqref="A5:XFD5" start="0"
    length="0" />
    <rcc rId="0" sId="1">
      <nc r="A5" t="inlineStr">
        <is>
          <t>a</t>
        </is>
      </nc>
    </rcc>
    <rcc rId="0" sId="1">
      <nc r="C5" t="inlineStr">
        <is>
          <t>test B1:F4</t>
        </is>
      </nc>
    </rcc>
    <rcc rId="0" sId="1">
      <nc r="D5" t="inlineStr">
        <is>
          <t>test B1:F4</t>
        </is>
      </nc>
    </rcc>
    <rcc rId="0" sId="1">
      <nc r="E5" t="inlineStr">
        <is>
          <t>test B1:F4</t>
        </is>
      </nc>
    </rcc>
    <rcc rId="0" sId="1">
      <nc r="F5" t="inlineStr">
        <is>
          <t>test B1:F4</t>
        </is>
      </nc>
    </rcc>
  </rrc>
OO Calc
  <table:deletion table:id="ct28" table:type="row"
  table:position="4" table:table="0">
    <office:change-info>
      <dc:creator>Opie</dc:creator>
      <dc:date>2008-07-17T19:07:19</dc:date>
    </office:change-info>
    <table:deletions>
      <table:cell-content-deletion table:id="ct24">
        <table:change-track-table-cell office:value-type="string">

          <text:p>test B1:F4</text:p>
        </table:change-track-table-cell>
      </table:cell-content-deletion>
      <table:cell-content-deletion table:id="ct20">
        <table:change-track-table-cell office:value-type="string">

          <text:p>test B1:F4</text:p>
        </table:change-track-table-cell>
      </table:cell-content-deletion>
      <table:cell-content-deletion table:id="ct16">
        <table:change-track-table-cell office:value-type="string">

          <text:p>test B1:F4</text:p>
        </table:change-track-table-cell>
      </table:cell-content-deletion>
      <table:cell-content-deletion table:id="ct12">
        <table:change-track-table-cell office:value-type="string">

          <text:p>test B1:F4</text:p>
        </table:change-track-table-cell>
      </table:cell-content-deletion>
      <table:cell-content-deletion table:id="ct8">
        <table:change-track-table-cell office:value-type="string">

          <text:p>test B1:F4</text:p>
        </table:change-track-table-cell>
      </table:cell-content-deletion>
      <table:cell-content-deletion table:id="ct4">
        <table:change-track-table-cell office:value-type="string">

          <text:p>test in A4</text:p>
        </table:change-track-table-cell>
      </table:cell-content-deletion>
    </table:deletions>
  </table:deletion>

back to top

Clear Cell Contents (in D3:E3)

Gnumeric
  <Command type="CmdClear" sheet="Sheet1" target="D3:E3" clearFlags="1"/>
Excel 2007
  None?
OO Calc
  <table:cell-content-change table:id="ct29">
    <table:cell-address table:column="3" table:row="2"
    table:table="0" />
    <office:change-info>
      <dc:creator>Opie</dc:creator>
      <dc:date>2008-07-17T19:07:29</dc:date>
    </office:change-info>
    <table:previous table:id="ct10">
      <table:change-track-table-cell office:value-type="string">

        <text:p>test B1:F4</text:p>
      </table:change-track-table-cell>
    </table:previous>
  </table:cell-content-change>
  <table:cell-content-change table:id="ct30">
    <table:cell-address table:column="4" table:row="2"
    table:table="0" />
    <office:change-info>
      <dc:creator>Opie</dc:creator>
      <dc:date>2008-07-17T19:07:29</dc:date>
    </office:change-info>
    <table:previous table:id="ct14">
      <table:change-track-table-cell office:value-type="string">

        <text:p>test B1:F4</text:p>
      </table:change-track-table-cell>
    </table:previous>
  </table:cell-content-change>

back to top

Format Range (in C1:F4)

Gnumeric
  <Command type="CmdFormat" sheet="Sheet1" target="C1:F4">
    <Borders>
      <Border loc="0" lineType="2" color="0:0:0"/>
      <Border loc="1" lineType="2" color="0:0:0"/>
      <Border loc="2" lineType="2" color="0:0:0"/>
      <Border loc="3" lineType="2" color="0:0:0"/>
      <Border loc="6" lineType="2" color="0:0:0"/>
      <Border loc="7" lineType="2" color="0:0:0"/>
    </Borders>
    <gnm:Style HAlign="8" Shade="1" Back="C7C7:AFAF:7979" PatternColor="0:0:0">
      <gnm:Font Bold="1" Italic="0">Arial</gnm:Font>
    </gnm:Style>
  </Command>
Excel 2007
  <rfmt sheetId="1" sqref="C1:C4" start="0" length="0">
    <dxf>
      <border>
        <left style="medium">
          <color auto="1" />
        </left>
      </border>
    </dxf>
  </rfmt>
  <rfmt sheetId="1" sqref="C1:F1" start="0" length="0">
    <dxf>
      <border>
        <top style="medium">
          <color auto="1" />
        </top>
      </border>
    </dxf>
  </rfmt>
  <rfmt sheetId="1" sqref="F1:F4" start="0" length="0">
    <dxf>
      <border>
        <right style="medium">
          <color auto="1" />
        </right>
      </border>
    </dxf>
  </rfmt>
  <rfmt sheetId="1" sqref="C4:F4" start="0" length="0">
    <dxf>
      <border>
        <bottom style="medium">
          <color auto="1" />
        </bottom>
      </border>
    </dxf>
  </rfmt>
  <rfmt sheetId="1" sqref="C1:F4" start="0" length="2147483647">
    <dxf>
      <font>
        <b />
        <sz val="10" />
        <name val="Arial" />
        <scheme val="none" />
      </font>
      <fill>
        <patternFill patternType="solid">
          <bgColor theme="2" tint="-0.24994659260841701" />
        </patternFill>
      </fill>
      <alignment horizontal="center" readingOrder="0" />
      <border>
        <left style="medium">
          <color auto="1" />
        </left>
        <right style="medium">
          <color auto="1" />
        </right>
        <top style="medium">
          <color auto="1" />
        </top>
        <bottom style="medium">
          <color auto="1" />
        </bottom>
        <vertical style="medium">
          <color auto="1" />
        </vertical>
        <horizontal style="medium">
          <color auto="1" />
        </horizontal>
      </border>
    </dxf>
  </rfmt>
OO Calc
  None?

back to top

Resize Column (autosize columns A:C)

Gnumeric
  <Command type="CmdResizeColRow" sheet="Sheet1" targetColRow="A:C" isCol="1" newSize="-1"/>
Excel 2007
  None?
OO Calc
  None?

back to top

Resize Row (set row height to 20 in rows 3:4)

Gnumeric
  <Command type="CmdResizeColRow" sheet="Sheet1" targetColRow="3:4" isCol="0" newSize="27"/>
Excel 2007
  None?
OO Calc
  None?

back to top