https://bz.apache.org/ooo/show_bug.cgi?id=128567
Issue ID: 128567
Issue Type: DEFECT
Summary: References to columns above 676 are wrong when
importing XML files
Product: Calc
Version: 4.1.14
Hardware: PC
OS: Windows, all
Status: UNCONFIRMED
Severity: Normal
Priority: P5 (lowest)
Component: code
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Created attachment 87177
--> https://bz.apache.org/ooo/attachment.cgi?id=87177&action=edit
Example file demonstrating the error.
File spreadsheetml2ooo.xsl has already been patched in version 4.1.14 (Issue
81233) but now references columns above 676 are wrong. Below is a patch for
spreadsheetml2ooo.xsl replacing templates translate-unit and
number-to-character.
Files uof2odf.xsl and uof2odf_spreadsheet.xsl contain a wrong version of
translate-unit as well.
<xsl:template name="translate-unit">
<!-- convert cell position expression unit, R1C1, R3, C4 -->
<xsl:param name="column-number"/>
<xsl:param name="row-number"/>
<xsl:param name="column-pos-style"/>
<xsl:param name="row-pos-style"/>
<xsl:variable name="ColumnLetters">
<xsl:call-template name="ConvertColumnNumber">
<xsl:with-param name="ColumnNumber"
select="$column-number"/>
</xsl:call-template>
</xsl:variable>
<!-- position styles are 'absolute' or 'relative', -->
<xsl:choose>
<xsl:when test="$column-pos-style = 'absolute'">
<xsl:text>$</xsl:text>
</xsl:when>
</xsl:choose>
<xsl:value-of select="$ColumnLetters"/>
<xsl:choose>
<xsl:when test="$row-pos-style ='absolute'">
<xsl:text>$</xsl:text>
</xsl:when>
</xsl:choose>
<xsl:value-of select="$row-number"/>
</xsl:template>
<xsl:template name="ConvertColumnNumber">
<xsl:param name="ColumnNumber"/>
<xsl:variable name="letters"
select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
<xsl:choose>
<xsl:when test="$ColumnNumber <= 26">
<xsl:value-of select="substring($letters,
$ColumnNumber, 1)"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="ConvertColumnNumber">
<xsl:with-param name="ColumnNumber"
select="floor(($ColumnNumber - 1) div 26)"/>
</xsl:call-template>
<xsl:value-of select="substring($letters,
($ColumnNumber - 1) mod 26 + 1, 1)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
--
You are receiving this mail because:
You are the assignee for the issue.