file-online-preview/server/libreoffice/share/xslt/import/uof/uof2odf_spreadsheet.xsl

9072 lines
580 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?xml version="1.0" encoding="UTF-8"?>
<!--
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:uof="http://schemas.uof.org/cn/2003/uof" xmlns:="http://schemas.uof.org/cn/2003/uof-spreadsheet" xmlns:="http://schemas.uof.org/cn/2003/uof-slideshow" xmlns:="http://schemas.uof.org/cn/2003/uof-wordproc" xmlns:="http://schemas.uof.org/cn/2003/graph" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" office:version="1.0">
<xsl:output method="xml" indent="no" encoding="UTF-8" version="1.0"/>
<xsl:template match="uof:UOF">
<!--chengxz0804 OK-->
<!--office:document xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" office:version="1.0" office:class="spreadsheet"-->
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" office:version="1.0">
<xsl:apply-templates select="uof:元数据"/>
<office:settings>
<xsl:call-template name="工作表属性"/>
</office:settings>
<xsl:apply-templates select="uof:式样集"/>
<!--xsl:apply-templates select="表:公用处理规则"/-->
<xsl:apply-templates select="uof:电子表格"/>
</office:document>
</xsl:template>
<!--Redoffice comment lil from chenjh SC0013 06.02.15-->
<!---->
<xsl:variable name="uofUnit">
<xsl:variable name="uu">
<xsl:value-of select="/uof:UOF/uof:电子表格/表:公用处理规则/表:度量单位"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$uu='cm'">cm</xsl:when>
<xsl:when test="$uu='mm'">mm</xsl:when>
<xsl:when test="$uu='pt'">pt</xsl:when>
<xsl:when test="$uu='inch'">inch</xsl:when>
<xsl:otherwise>cm</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="other-to-cm-conversion-factor">
<xsl:choose>
<xsl:when test="$uofUnit='cm'">1</xsl:when>
<xsl:when test="$uofUnit='mm'">0.1</xsl:when>
<xsl:when test="$uofUnit='pt'">0.03527</xsl:when>
<xsl:when test="$uofUnit='inch'">2.54</xsl:when>
<xsl:when test="$uofUnit='pica'">0.4233</xsl:when>
<xsl:otherwise>0.03527</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!--Redoffice comment liliang end 06.02.15-->
<xsl:template name="set-calculation">
<xsl:element name="table:calculation-settings">
<xsl:if test="表:公用处理规则/表:度量单位">
<xsl:variable name="uofUnit">
<xsl:variable name="uu">
<xsl:value-of select="表:公用处理规则/表:度量单位"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$uu='cm'">cm</xsl:when>
<xsl:when test="$uu='mm'">mm</xsl:when>
<xsl:when test="$uu='pt'">pt</xsl:when>
<xsl:when test="$uu='inch'">inch</xsl:when>
<xsl:otherwise>cm</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="other-to-cm-conversion-factor">
<xsl:choose>
<xsl:when test="$uofUnit='cm'">1</xsl:when>
<xsl:when test="$uofUnit='mm'">0.1</xsl:when>
<xsl:when test="$uofUnit='pt'">0.03527</xsl:when>
<xsl:when test="$uofUnit='inch'">2.54</xsl:when>
<xsl:when test="$uofUnit='pica'">0.4233</xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>
</xsl:variable>
</xsl:if>
<xsl:if test="表:公用处理规则/表:精确度以显示值为准">
<xsl:attribute name="table:precision-as-shown">true</xsl:attribute>
</xsl:if>
<xsl:if test="表:公用处理规则/表:日期系统-1904/@表:值='true'">
<table:null-date table:date-value="1904-01-01"/>
</xsl:if>
<xsl:if test="表:公用处理规则/表:计算设置">
<xsl:element name="table:iteration">
<xsl:attribute name="table:status">enable</xsl:attribute>
<xsl:attribute name="table:steps"><xsl:value-of select="表:公用处理规则/表:计算设置/@表:迭代次数"/></xsl:attribute>
<xsl:attribute name="table:maximum-difference"><xsl:value-of select="表:公用处理规则/表:计算设置/@表:偏差值"/></xsl:attribute>
</xsl:element>
</xsl:if>
</xsl:element>
</xsl:template>
<xsl:template match="uof:字体集">
<xsl:if test="not(uof:字体声明[@uof:名称='StarSymbol'])">
<style:font-face style:name="StarSymbol" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
</xsl:if>
<xsl:for-each select="uof:字体声明">
<xsl:element name="style:font-face">
<xsl:attribute name="style:name"><xsl:value-of select="@uof:名称"/></xsl:attribute>
<xsl:attribute name="svg:font-family"><xsl:value-of select="@uof:字体族"/></xsl:attribute>
<xsl:if test="@uof:字符集 = '02'">
<xsl:attribute name="style:font-charset">x-symbol</xsl:attribute>
</xsl:if>
<xsl:if test="@uof:字体族">
<xsl:choose>
<xsl:when test="@uof:字体族 = 'Swiss'">
<xsl:attribute name="style:font-family-generic">swiss</xsl:attribute>
</xsl:when>
<xsl:when test="@uof:字体族 ='Modern'">
<xsl:attribute name="style:font-family-generic">modern</xsl:attribute>
</xsl:when>
<xsl:when test="@uof:字体族='Roman'">
<xsl:attribute name="style:font-family-generic">roman</xsl:attribute>
</xsl:when>
<xsl:when test="@uof:字体族 ='Script'">
<xsl:attribute name="style:font-family-generic">script</xsl:attribute>
</xsl:when>
<xsl:when test="@uof:字体族 ='Decorative'">
<xsl:attribute name="style:font-family-generic">decorative</xsl:attribute>
</xsl:when>
<xsl:when test="@uof:字体族 ='System'">
<xsl:attribute name="style:font-family-generic">system</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style:font-family-generic">system</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:attribute name="style:font-pitch">12</xsl:attribute>
</xsl:element>
</xsl:for-each>
<xsl:apply-templates select="uof:字体声明"/>
</xsl:template>
<xsl:template match="uof:电子表格">
<office:body>
<office:spreadsheet>
<xsl:call-template name="trackchange"/>
<xsl:call-template name="set-calculation"/>
<xsl:if test="表:公用处理规则/表:数据有效性集">
<xsl:element name="table:content-validations">
<xsl:call-template name="create-content-validations">
<xsl:with-param name="validation-set" select="表:公用处理规则/表:数据有效性集/表:数据有效性"/>
</xsl:call-template>
</xsl:element>
</xsl:if>
<xsl:apply-templates select="表:主体/表:工作表"/>
<!--MSexcel names-->
<xsl:element name="table:database-ranges">
<xsl:for-each select="表:主体/表:工作表">
<xsl:if test="./表:筛选">
<xsl:variable name="filter" select="./表:筛选"/>
<xsl:variable name="column-and-row" select="substring-before(substring-after($filter/表:范围/text(),'.'),':')"/>
<xsl:variable name="dd" select="number(substring($column-and-row,2,1))"/>
<xsl:variable name="zone-left-column-string">
<xsl:choose>
<xsl:when test="contains($dd,'NaN') ">
<xsl:value-of select="substring($column-and-row,1,2)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring($column-and-row,1,1)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="zone-left-column-num">
<xsl:call-template name="translate-column-char-to-number">
<xsl:with-param name="string" select="$zone-left-column-string"/>
</xsl:call-template>
</xsl:variable>
<xsl:element name="table:database-range">
<xsl:attribute name="table:name"><xsl:value-of select="uof:电子表格/表:主体/表:工作表/@表:名称"/></xsl:attribute>
<xsl:attribute name="table:target-range-address"><xsl:call-template name="translate-expression2"><xsl:with-param name="expression2" select="translate($filter/表:范围/text(),'$','')"/></xsl:call-template></xsl:attribute>
<xsl:if test="$filter/@表:类型='auto'">
<xsl:attribute name="table:display-filter-buttons">true</xsl:attribute>
</xsl:if>
<xsl:choose>
<xsl:when test="$filter/表:条件区域">
<xsl:element name="table:filter">
<xsl:attribute name="table:condition-source-range-address"><xsl:call-template name="translate-expression2"><xsl:with-param name="expression2" select="translate($filter/表:条件区域/text(),'$','')"/></xsl:call-template></xsl:attribute>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="table:filter">
<xsl:element name="table:filter-and">
<xsl:call-template name="auto-filter-condition">
<xsl:with-param name="condition-set" select="$filter/表:条件"/>
<xsl:with-param name="zone-left-column-num" select="$zone-left-column-num"/>
</xsl:call-template>
</xsl:element>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:element>
</office:spreadsheet>
</office:body>
</xsl:template>
<xsl:template name="trackchange">
<xsl:for-each select="表:主体/表:工作表/表:工作表内容//字:修订开始">
<xsl:variable name="num">
<xsl:number level="any" from="表:主体/表:工作表/表:工作表内容//*" count="字:修订开始"/>
</xsl:variable>
<table:tracked-changes>
<table:cell-content-change>
<xsl:attribute name="table:id"><xsl:value-of select="concat('ct',$num)"/></xsl:attribute>
<table:cell-address>
<xsl:attribute name="table:column"><xsl:value-of select="substring-after(@字:标识符,'-')"/></xsl:attribute>
<xsl:attribute name="table:row"><xsl:value-of select="substring-before(@字:标识符,'-')"/></xsl:attribute>
<xsl:attribute name="table:table">0</xsl:attribute>
</table:cell-address>
<office:change-info>
<dc:creator>
<xsl:choose>
<xsl:when test="starts-with(@字:修订信息引用,'+')"/>
<xsl:otherwise>
<xsl:value-of select="substring-before(@字:修订信息引用,'+')"/>
</xsl:otherwise>
</xsl:choose>
</dc:creator>
<!--xsl:value-of select="/uof:UOF/uof:元数据/uof:作者"/-->
<!--xsl:value-of select="/uof:UOF/uof:元数据/uof:创建日期"/-->
<dc:date>
<xsl:value-of select="substring-before(substring-after(@字:修订信息引用,'+'),'%')"/>
</dc:date>
</office:change-info>
<table:previous>
<table:change-track-table-cell>
<text:p>
<xsl:value-of select="substring-after(@字:修订信息引用,'%')"/>
</text:p>
</table:change-track-table-cell>
</table:previous>
</table:cell-content-change>
</table:tracked-changes>
</xsl:for-each>
</xsl:template>
<xsl:template match="uof:式样集">
<xsl:element name="office:font-face-decls">
<style:font-face style:name="宋体" svg:font-family="宋体" style:font-family-generic="swiss"/>
<xsl:apply-templates select="uof:字体集"/>
</xsl:element>
<xsl:call-template name="单元格式样"/>
</xsl:template>
<xsl:key match="/uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/uof:锚点 | /uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/表:行/表:单元格/uof:锚点" name="rel_graphic_name" use="@uof:图形引用"/>
<xsl:template match="图:图形">
<xsl:variable name="random-name">
<xsl:value-of select="generate-id()"/>
</xsl:variable>
<xsl:variable name="draw-name">
<xsl:value-of select="substring($random-name,string-length($random-name)-1)"/>
</xsl:variable>
<xsl:call-template name="graphic-fill">
<xsl:with-param name="draw-name" select="$draw-name"/>
<xsl:with-param name="gradient-name" select="图:预定义图形/图:属性/图:填充/图:渐变"/>
</xsl:call-template>
<xsl:choose>
<xsl:when test="图:预定义图形/图:属性/图:填充/图:渐变">
<xsl:element name="style:style">
<xsl:attribute name="style:name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
<xsl:attribute name="style:family">graphic</xsl:attribute>
<xsl:element name="style:graphic-properties">
<xsl:call-template name="process-graphics">
<xsl:with-param name="draw-name" select="$draw-name"/>
</xsl:call-template>
</xsl:element>
<xsl:element name="style:paragraph-properties">
<xsl:if test="图:文本内容/@图:文字排列方向">
<xsl:choose>
<xsl:when test="图:文本内容/@图:文字排列方向='vert-l2r'">
<xsl:attribute name="style:writing-mode">tb-lr</xsl:attribute>
</xsl:when>
<xsl:when test="图:文本内容/@图:文字排列方向='vert-r2l'">
<xsl:attribute name="style:writing-mode">tb-rl</xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:element>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="style:style">
<xsl:attribute name="style:name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
<xsl:attribute name="style:family">graphic</xsl:attribute>
<xsl:element name="style:graphic-properties">
<xsl:if test="@图:其他对象">
<xsl:attribute name="fo:clip">rect(0cm 0cm 0cm 0cm)</xsl:attribute>
<xsl:attribute name="draw:color-mode">standard</xsl:attribute>
<xsl:attribute name="draw:luminance">0%</xsl:attribute>
<xsl:attribute name="draw:contrast">0%</xsl:attribute>
<xsl:attribute name="draw:gamma">100%</xsl:attribute>
<xsl:attribute name="draw:red">0%</xsl:attribute>
<xsl:attribute name="draw:green">0%</xsl:attribute>
<xsl:attribute name="draw:blue">0%</xsl:attribute>
<xsl:attribute name="draw:image-opacity">100%</xsl:attribute>
<xsl:attribute name="style:mirror">none</xsl:attribute>
</xsl:if>
<xsl:call-template name="process-graphics"/>
</xsl:element>
<xsl:element name="style:paragraph-properties">
<xsl:if test="图:文本内容/@图:文字排列方向">
<xsl:choose>
<xsl:when test="图:文本内容/@图:文字排列方向='vert-l2r'">
<xsl:attribute name="style:writing-mode">tb-lr</xsl:attribute>
</xsl:when>
<xsl:when test="图:文本内容/@图:文字排列方向='vert-r2l'">
<xsl:attribute name="style:writing-mode">tb-rl</xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:element>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="process-graphics">
<xsl:param name="draw-name"/>
<xsl:if test="not(key('rel_graphic_name',@图:标识符)/@uof:随动方式='movesize')">
<xsl:attribute name="style:protect"><xsl:choose><xsl:when test="key('rel_graphic_name',@图:标识符)/@uof:随动方式='move'">size</xsl:when><xsl:otherwise>position size</xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:if>
<xsl:choose>
<xsl:when test="not(图:预定义图形/图:属性/图:填充)">
<xsl:attribute name="draw:fill">none</xsl:attribute>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:填充/图:图片">
<xsl:attribute name="draw:fill">bitmap</xsl:attribute>
<xsl:attribute name="draw:fill-image-name"><xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图片/@图:名称"/></xsl:attribute>
<xsl:if test="not(图:预定义图形/图:属性/图:填充/图:图片/@图:位置='tile')">
<xsl:attribute name="style:repeat"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:填充/图:图片/@图:位置='center'">no-repeat</xsl:when><xsl:when test="图:预定义图形/图:属性/图:填充/图:图片/@图:位置='stretch'">stretch</xsl:when></xsl:choose></xsl:attribute>
</xsl:if>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:填充/图:图案">
<xsl:attribute name="draw:fill">bitmap</xsl:attribute>
<xsl:attribute name="draw:fill-color"><xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图案/@图:前景色"/></xsl:attribute>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:填充/图:颜色">
<xsl:attribute name="draw:fill">solid</xsl:attribute>
<xsl:attribute name="draw:fill-color"><xsl:value-of select="图:预定义图形/图:属性/图:填充/图:颜色"/></xsl:attribute>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:填充/图:渐变">
<xsl:attribute name="draw:fill">gradient</xsl:attribute>
<xsl:attribute name="draw:fill-color"><xsl:value-of select="图:预定义图形/图:属性/图:填充/图:渐变/@图:起始色"/></xsl:attribute>
<xsl:attribute name="draw:fill-gradient-name"><xsl:value-of select="concat('Gradient ',$draw-name)"/></xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:if test="图:预定义图形/图:属性/图:线颜色">
<xsl:attribute name="svg:stroke-color"><xsl:value-of select="图:预定义图形/图:属性/图:线颜色"/></xsl:attribute>
</xsl:if>
<xsl:if test="图:预定义图形/图:属性/图:线型 and not(图:预定义图形/图:属性/图:线型 = 'single') and not(图:预定义图形/图:属性/图:线型 = 'thick')">
<xsl:variable name="type" select="图:预定义图形/图:属性/图:线型"/>
<xsl:attribute name="draw:stroke"><xsl:choose><xsl:when test="$type='none'">none</xsl:when><xsl:when test="$type='single'">solid</xsl:when><xsl:otherwise>dash</xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:attribute name="draw:stroke-dash"><xsl:choose><xsl:when test="$type='dash'">Ultrafine_20_Dashed</xsl:when><xsl:when test="$type='dot-dash'">Ultrafine_20_2_20_Dots_20_3_20_Dashes</xsl:when><xsl:when test="$type='dashed-heavy'">Fine_20_Dashed</xsl:when><xsl:when test="$type='dotted' ">Fine_20_Dotted</xsl:when><xsl:when test="$type='dash-long-heavy'">Line_20_with_20_Fine_20_Dots</xsl:when><xsl:when test="$type='dash-long'">Fine_20_Dashed_20__28_var_29_</xsl:when><xsl:when test="$type='dash-dot-dot'">_33__20_Dashes_20_3_20_Dots_20__28_var_29_</xsl:when><xsl:when test="$type='dotted-heavy'">Ultrafine_20_Dotted_20__28_var_29_</xsl:when><xsl:when test="$type='thick'">Line_20_Style_20_9</xsl:when><xsl:when test="$type='dot-dot-dash'">_32__20_Dots_20_1_20_Dash</xsl:when><xsl:when test="$type='dash-dot-dot-heavy'">Dashed_20__28_var_29_</xsl:when><xsl:when test="$type='dash-dot-heavy'">Dash_20_10</xsl:when></xsl:choose></xsl:attribute>
</xsl:if>
<xsl:if test="图:预定义图形/图:属性/图:线粗细">
<xsl:attribute name="svg:stroke-width"><xsl:value-of select="concat(图:预定义图形/图:属性/图:线粗细,$uofUnit)"/></xsl:attribute>
</xsl:if>
<xsl:if test="图:预定义图形/图:属性/图:前端箭头">
<xsl:attribute name="draw:marker-start"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='open'">Line Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='stealth'">Arrow concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='diamond'">Square 45</xsl:when></xsl:choose></xsl:attribute>
<xsl:if test="图:预定义图形/图:属性/图:前端箭头/图:大小">
<xsl:attribute name="draw:marker-start-width"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:大小 = '1'"><xsl:value-of select="concat('0.05',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:大小 = '2'"><xsl:value-of select="concat('0.10',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:大小 = '3'"><xsl:value-of select="concat('0.15',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:大小 = '4'"><xsl:value-of select="concat('0.20',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:大小 = '5'"><xsl:value-of select="concat('0.25',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:大小 = '6'"><xsl:value-of select="concat('0.30',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:大小 = '7'"><xsl:value-of select="concat('0.35',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:大小 = '8'"><xsl:value-of select="concat('0.40',$uofUnit)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('0.45',$uofUnit)"/></xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="图:预定义图形/图:属性/图:后端箭头">
<xsl:attribute name="draw:marker-end"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='open'">Line Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='stealth'">Arrow concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='diamond'">Square 45</xsl:when></xsl:choose></xsl:attribute>
<xsl:if test="图:预定义图形/图:属性/图:后端箭头/图:大小">
<xsl:attribute name="draw:marker-end-width"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:大小 = '1'"><xsl:value-of select="concat('0.05',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:大小 = '2'"><xsl:value-of select="concat('0.10',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:大小 = '3'"><xsl:value-of select="concat('0.15',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:大小 = '4'"><xsl:value-of select="concat('0.20',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:大小 = '5'"><xsl:value-of select="concat('0.25',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:大小 = '6'"><xsl:value-of select="concat('0.30',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:大小 = '7'"><xsl:value-of select="concat('0.35',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:大小 = '8'"><xsl:value-of select="concat('0.40',$uofUnit)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('0.45',$uofUnit)"/></xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="图:预定义图形/图:属性/图:透明度">
<xsl:attribute name="draw:opacity"><xsl:value-of select="concat(图:预定义图形/图:属性/图:透明度,'%')"/></xsl:attribute>
</xsl:if>
<xsl:if test="图:文本内容">
<xsl:if test="图:文本内容/@图:上边距">
<xsl:attribute name="fo:padding-top"><xsl:value-of select="concat(图:文本内容/@图:上边距,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="fo:padding-bottom"><xsl:value-of select="concat(图:文本内容/@图:下边距,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="fo:padding-left"><xsl:value-of select="concat(图:文本内容/@图:左边距,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="fo:padding-right"><xsl:value-of select="concat(图:文本内容/@图:右边距,$uofUnit)"/></xsl:attribute>
</xsl:if>
<xsl:if test="图:文本内容/@图:文字排列方向">
<xsl:choose>
<xsl:when test="图:文本内容/@图:文字排列方向='vert-l2r'">
<xsl:attribute name="style:writing-mode">tb-lr</xsl:attribute>
</xsl:when>
<xsl:when test="图:文本内容/@图:文字排列方向='vert-r2l'">
<xsl:attribute name="style:writing-mode">tb-rl</xsl:attribute>
</xsl:when>
<xsl:when test="图:文本内容/@图:文字排列方向='hori-r2l'">
<xsl:attribute name="draw:textarea-horizontal-align">right</xsl:attribute>
</xsl:when>
<xsl:when test="图:文本内容/@图:文字排列方向='hori-12r'">
<xsl:attribute name="draw:textarea-horizontal-align">left</xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:if>
<xsl:if test="图:文本内容/@图:水平对齐">
<xsl:attribute name="draw:textarea-horizontal-align"><xsl:value-of select="图:文本内容/@图:水平对齐"/></xsl:attribute>
</xsl:if>
<xsl:if test="图:文本内容/@图:垂直对齐">
<xsl:attribute name="draw:textarea-vertical-align"><xsl:value-of select="图:文本内容/@图:垂直对齐"/></xsl:attribute>
</xsl:if>
<xsl:if test="图:文本内容/@图:自动换行">
<xsl:attribute name="fo:wrap-option">no-wrap</xsl:attribute>
</xsl:if>
<xsl:attribute name="draw:auto-grow-width"><xsl:choose><xsl:when test="图:文本内容/@图:大小适应文字">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:attribute name="draw:auto-grow-height"><xsl:choose><xsl:when test="图:文本内容/@图:大小适应文字">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template name="bina_graphic">
<xsl:param name="refGraphic"/>
<xsl:element name="office:binary-data">
<xsl:for-each select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符 = $refGraphic]">
<xsl:value-of select="uof:数据"/>
</xsl:for-each>
</xsl:element>
<text:p/>
</xsl:template>
<xsl:template name="graphic-fill">
<xsl:param name="draw-name"/>
<xsl:param name="gradient-name"/>
<xsl:if test="图:预定义图形/图:属性/图:填充/图:渐变">
<xsl:element name="draw:gradient">
<xsl:attribute name="draw:name"><xsl:value-of select="concat('Gradient ',$draw-name)"/></xsl:attribute>
<xsl:attribute name="draw:style"><xsl:choose><xsl:when test="$gradient-name/@图:种子类型='linear'"><xsl:value-of select="'linear'"/></xsl:when><xsl:when test="$gradient-name/@图:种子类型='radar'"><xsl:value-of select="'radial'"/></xsl:when><xsl:when test="$gradient-name/@图:种子类型='oval'"><xsl:value-of select="'ellipsoid'"/></xsl:when><xsl:when test="$gradient-name/@图:种子类型='square'"><xsl:value-of select="'square'"/></xsl:when><xsl:when test="$gradient-name/@图:种子类型='rectangle'"><xsl:value-of select="'rectangular'"/></xsl:when></xsl:choose></xsl:attribute>
<xsl:attribute name="draw:start-color"><xsl:value-of select="$gradient-name/@图:起始色"/></xsl:attribute>
<xsl:attribute name="draw:end-color"><xsl:value-of select="$gradient-name/@图:终止色"/></xsl:attribute>
<xsl:attribute name="draw:start-intensity"><xsl:value-of select="concat($gradient-name/@图:起始浓度,'%')"/></xsl:attribute>
<xsl:attribute name="draw:end-intensity"><xsl:value-of select="concat($gradient-name/@图:终止浓度,'%')"/></xsl:attribute>
<xsl:attribute name="draw:angle"><xsl:value-of select="$gradient-name/@图:渐变方向 * 10"/></xsl:attribute>
<xsl:attribute name="draw:border"><xsl:value-of select="concat($gradient-name/@图:边界,'%')"/></xsl:attribute>
<xsl:if test="$gradient-name/@图:种子X位置">
<xsl:attribute name="draw:cx"><xsl:value-of select="concat($gradient-name/@图:种子X位置,'%')"/></xsl:attribute>
</xsl:if>
<xsl:if test="$gradient-name/@图:种子Y位置">
<xsl:attribute name="draw:cy"><xsl:value-of select="concat($gradient-name/@图:种子Y位置,'%')"/></xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:if>
<xsl:if test="图:预定义图形/图:属性/图:前端箭头">
<xsl:element name="draw:marker">
<xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='open'">Line Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='stealth'">Arrow concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='diamond'">Square 45</xsl:when></xsl:choose></xsl:attribute>
<xsl:choose>
<xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='normal'">
<xsl:attribute name="svg:viewBox">0 0 20 30</xsl:attribute>
<xsl:attribute name="svg:d">m10 0-10 30h20z</xsl:attribute>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='open'">
<xsl:attribute name="svg:viewBox">0 0 1122 2243</xsl:attribute>
<xsl:attribute name="svg:d">m0 2108v17 17l12 42 30 34 38 21 43 4 29-8 30-21 25-26 13-34 343-1532 339 1520 13 42 29 34 39 21 42 4 42-12 34-30 21-42v-39-12l-4 4-440-1998-9-42-25-39-38-25-43-8-42 8-38 25-26 39-8 42z</xsl:attribute>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='stealth'">
<xsl:attribute name="svg:viewBox">0 0 1131 1580</xsl:attribute>
<xsl:attribute name="svg:d">m1013 1491 118 89-567-1580-564 1580 114-85 136-68 148-46 161-17 161 13 153 46z</xsl:attribute>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='oval'">
<xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
<xsl:attribute name="svg:d">m462 1118-102-29-102-51-93-72-72-93-51-102-29-102-13-105 13-102 29-106 51-102 72-89 93-72 102-50 102-34 106-9 101 9 106 34 98 50 93 72 72 89 51 102 29 106 13 102-13 105-29 102-51 102-72 93-93 72-98 51-106 29-101 13z</xsl:attribute>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:前端箭头/图:式样='diamond'">
<xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
<xsl:attribute name="svg:d">m0 564 564 567 567-567-567-564z</xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:element>
</xsl:if>
<xsl:if test="图:预定义图形/图:属性/图:后端箭头">
<xsl:element name="draw:marker">
<xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='open'">Line Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='stealth'">Arrow concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='diamond'">Square 45</xsl:when></xsl:choose></xsl:attribute>
<xsl:choose>
<xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='normal'">
<xsl:attribute name="svg:viewBox">0 0 20 30</xsl:attribute>
<xsl:attribute name="svg:d">m10 0-10 30h20z</xsl:attribute>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='open'">
<xsl:attribute name="svg:viewBox">0 0 1122 2243</xsl:attribute>
<xsl:attribute name="svg:d">m0 2108v17 17l12 42 30 34 38 21 43 4 29-8 30-21 25-26 13-34 343-1532 339 1520 13 42 29 34 39 21 42 4 42-12 34-30 21-42v-39-12l-4 4-440-1998-9-42-25-39-38-25-43-8-42 8-38 25-26 39-8 42z</xsl:attribute>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='stealth'">
<xsl:attribute name="svg:viewBox">0 0 1131 1580</xsl:attribute>
<xsl:attribute name="svg:d">m1013 1491 118 89-567-1580-564 1580 114-85 136-68 148-46 161-17 161 13 153 46z</xsl:attribute>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='oval'">
<xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
<xsl:attribute name="svg:d">m462 1118-102-29-102-51-93-72-72-93-51-102-29-102-13-105 13-102 29-106 51-102 72-89 93-72 102-50 102-34 106-9 101 9 106 34 98 50 93 72 72 89 51 102 29 106 13 102-13 105-29 102-51 102-72 93-93 72-98 51-106 29-101 13z</xsl:attribute>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:后端箭头/图:式样='diamond'">
<xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
<xsl:attribute name="svg:d">m0 564 564 567 567-567-567-564z</xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:element>
</xsl:if>
<xsl:if test="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用 or 图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用">
<xsl:element name="draw:fill-image">
<xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用"><xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图案/@图:类型"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用"><xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图片/@图:名称"/></xsl:when></xsl:choose></xsl:attribute>
<xsl:call-template name="bina_graphic">
<xsl:with-param name="refGraphic">
<xsl:choose>
<xsl:when test="图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用">
<xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用"/>
</xsl:when>
<xsl:when test="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用">
<xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用"/>
</xsl:when>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</xsl:element>
</xsl:if>
<xsl:if test="not(图:预定义图形/图:属性/图:线型='single') and not(图:预定义图形/图:属性/图:线型='thick') and 图:预定义图形/图:属性/图:线型">
<draw:stroke-dash draw:name="Ultrafine_20_Dashed" draw:display-name="Ultrafine Dashed" draw:style="rect" draw:dots1="1" draw:dots1-length="0.051cm" draw:dots2="1" draw:dots2-length="0.051cm" draw:distance="0.051cm"/>
<draw:stroke-dash draw:name="Fine_20_Dashed" draw:display-name="Fine Dashed" draw:style="rect" draw:dots1="1" draw:dots1-length="0.508cm" draw:dots2="1" draw:dots2-length="0.508cm" draw:distance="0.508cm"/>
<draw:stroke-dash draw:name="Ultrafine_20_2_20_Dots_20_3_20_Dashes" draw:display-name="Ultrafine 2 Dots 3 Dashes" draw:style="rect" draw:dots1="2" draw:dots1-length="0.051cm" draw:dots2="3" draw:dots2-length="0.254cm" draw:distance="0.127cm"/>
<draw:stroke-dash draw:name="Fine_20_Dashed_20__28_var_29_" draw:display-name="Fine Dashed (var)" draw:style="rect" draw:dots1="1" draw:dots1-length="197%" draw:distance="197%"/>
<draw:stroke-dash draw:name="Fine_20_Dotted" draw:display-name="Fine Dotted" draw:style="rect" draw:dots1="1" draw:distance="0.457cm"/>
<draw:stroke-dash draw:name="Fine_20_Dashed_20__28_var_29_" draw:display-name="Fine Dashed (var)" draw:style="rect" draw:dots1="1" draw:dots1-length="197%" draw:distance="197%"/>
<draw:stroke-dash draw:name="Fine_20_Dotted" draw:display-name="Fine Dotted" draw:style="rect" draw:dots1="1" draw:distance="0.457cm"/>
<draw:stroke-dash draw:name="Line_20_with_20_Fine_20_Dots" draw:display-name="Line with Fine Dots" draw:style="rect" draw:dots1="1" draw:dots1-length="2.007cm" draw:dots2="10" draw:distance="0.152cm"/>
<draw:stroke-dash draw:name="Line_20_Style_20_9" draw:display-name="Line Style 9" draw:style="rect" draw:dots1="1" draw:dots1-length="197%" draw:distance="120%"/>
<draw:stroke-dash draw:name="_33__20_Dashes_20_3_20_Dots_20__28_var_29_" draw:display-name="3 Dashes 3 Dots (var)" draw:style="rect" draw:dots1="3" draw:dots1-length="197%" draw:dots2="3" draw:distance="100%"/>
<draw:stroke-dash draw:name="_32__20_Dots_20_1_20_Dash" draw:display-name="2 Dots 1 Dash" draw:style="rect" draw:dots1="2" draw:dots2="1" draw:dots2-length="0.203cm" draw:distance="0.203cm"/>
<draw:stroke-dash draw:name="Ultrafine_20_Dotted_20__28_var_29_" draw:display-name="Ultrafine Dotted (var)" draw:style="rect" draw:dots1="1" draw:distance="50%"/>
<draw:stroke-dash draw:name="Dash_20_10" draw:display-name="Dash 10" draw:style="rect" draw:dots1="1" draw:dots1-length="0.02cm" draw:dots2="1" draw:dots2-length="0.02cm" draw:distance="0.02cm"/>
</xsl:if>
</xsl:template>
<xsl:template name="单元格式样">
<xsl:variable name="uofSheet" select="/uof:UOF/uof:电子表格"/>
<xsl:variable name="uofSheet1" select="/uof:UOF/uof:电子表格/表:主体/表:工作表"/>
<xsl:variable name="uofSheetCom" select="$uofSheet/表:公用处理规则"/>
<xsl:variable name="first-style" select="/uof:UOF/uof:式样集/uof:单元格式样"/>
<xsl:variable name="quyu" select="/uof:UOF/uof:电子表格/表:公用处理规则/表:条件格式化集/表:条件格式化/表:区域"/>
<xsl:variable name="condition-format-set" select="/uof:UOF/uof:电子表格/表:公用处理规则/表:条件格式化集/表:条件格式化"/>
<xsl:variable name="aa">
<xsl:for-each select="$first-style">
<xsl:if test="@表:标识符!=@表:名称 and @表:名称!='Normal'">
<xsl:value-of select="@表:名称"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="bb">
<xsl:for-each select="$first-style">
<xsl:if test="@表:标识符!=@表:名称 and @表:名称!='Normal'">
<xsl:value-of select="@表:标识符"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<office:styles>
<!-- if ConditionalFormatting exists,it should generate some styles for style:style -->
<!--xsl:if test="$uofSheetCom/表:条件格式化集">
<xsl:call-template name="CondFormat_office_style"/>
</xsl:if-->
<!--ro000179 chenjh-->
<xsl:for-each select="$first-style[@表:类型='custom' or @表:类型='default']">
<xsl:call-template name="单元格具体式样"/>
<xsl:apply-templates select="表:数字格式[@表:格式码]"/>
<xsl:apply-templates select="表:字体格式[字:上下标]"/>
</xsl:for-each>
</office:styles>
<office:automatic-styles>
<xsl:for-each select="$first-style[@表:类型='auto']">
<xsl:variable name="apply-style-name" select="@表:名称"/>
<xsl:variable name="style-name" select="@表:标识符"/>
<xsl:choose>
<xsl:when test="$style-name!=$apply-style-name and $apply-style-name!='Normal'">
<xsl:for-each select="$condition-format-set/表:条件">
<style:style>
<xsl:attribute name="style:name"><xsl:value-of select="//uof:单元格式样[@表:名称=current()/表:格式/@表:式样引用 and @表:类型='auto']/@表:标识符"/></xsl:attribute>
<xsl:attribute name="style:family">table-cell</xsl:attribute>
<xsl:attribute name="style:parent-style-name">Default</xsl:attribute>
<xsl:for-each select="parent::表:条件格式化/表:条件">
<xsl:variable name="condition-text">
<xsl:choose>
<xsl:when test="@表:类型='cell value'">
<xsl:choose>
<xsl:when test="表:操作码/text()='between' ">
<xsl:value-of select="concat('cell-content-is-between','(',表:第一操作数/text(),',',表:第二操作数/text(),')')"/>
</xsl:when>
<xsl:when test=" 表:操作码/text()='not between'">
<xsl:value-of select="concat('cell-content-is-not-between','(',表:第一操作数/text(),',',表:第二操作数/text(),')')"/>
</xsl:when>
<xsl:when test="表:操作码/text()='equal to'">
<xsl:value-of select="concat('cell-content()=',表:第一操作数/text())"/>
</xsl:when>
<xsl:when test="表:操作码/text()='not equal to'">
<xsl:value-of select="concat('cell-content()!=',表:第一操作数/text())"/>
</xsl:when>
<xsl:when test="表:操作码/text()='greater than'">
<xsl:value-of select="concat('cell-content()&gt;',表:第一操作数/text())"/>
</xsl:when>
<xsl:when test="表:操作码/text()='less than'">
<xsl:value-of select="concat('cell-content()&lt;',表:第一操作数/text())"/>
</xsl:when>
<xsl:when test="表:操作码/text()='greater than or equal to'">
<xsl:value-of select="concat('cell-content()&gt;=',表:第一操作数/text())"/>
</xsl:when>
<xsl:when test="表:操作码/text()='less than or equal to'">
<xsl:value-of select="concat('cell-content()&lt;=',表:第一操作数/text())"/>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="@表:类型='formula'">
<xsl:value-of select="concat('is-true-formula','(',表:第一操作数/text(),')')"/>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:element name="style:map">
<xsl:variable name="address">
<xsl:value-of select="preceding-sibling::表:区域"/>
</xsl:variable>
<xsl:attribute name="style:condition"><xsl:value-of select="$condition-text"/></xsl:attribute>
<xsl:attribute name="style:apply-style-name"><xsl:value-of select="表:格式/@表:式样引用"/></xsl:attribute>
<xsl:attribute name="style:base-cell-address"><xsl:value-of select="substring-after($address,':')"/></xsl:attribute>
</xsl:element>
</xsl:for-each>
</style:style>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="uof:单元格式样 ">
<xsl:if test="@表:类型='auto' and (@表:标识符=@表:名称 or @表:名称='Normal')">
<xsl:call-template name="单元格具体式样"/>
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<!--Redoffie comment liliang SC0008 06.02.14-->
<!--1-->
<xsl:if test="uof:单元格式样">
<xsl:for-each select="uof:单元格式样">
<xsl:if test="@表:类型='auto' and (@表:标识符=@表:名称 or @表:名称='Normal')">
<xsl:call-template name="单元格具体式样"/>
</xsl:if>
</xsl:for-each>
</xsl:if>
<xsl:if test="/uof:UOF/uof:对象集/uof:其他对象/@uof:公有类型='png' or /uof:UOF/uof:对象集/uof:其他对象/@uof:公有类型='ipg' or /uof:UOF/uof:对象集/uof:其他对象/@uof:公有类型='bmp' or /uof:UOF/uof:对象集/uof:其他对象/@uof:公有类型='gif'">
<style:style style:name="Graphics" style:family="graphics">
<style:properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" style:wrap="none" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="center" style:horizontal-rel="paragraph"/>
</style:style>
</xsl:if>
<xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形"/>
<xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形/图:文本内容/字:段落/字:句/字:句属性" mode="style"/>
<!--Redoffice comment end 06.02.14-->
<xsl:apply-templates select="$uofSheet1/表:工作表内容"/>
<xsl:if test="uof:单元格式样">
<xsl:for-each select="uof:单元格式样[@表:类型='auto' and (@表:标识符=@表:名称 or @表:名称='Normal')]">
<xsl:call-template name="单元格具体式样"/>
<xsl:apply-templates select="表:数字格式[@表:格式码]"/>
<xsl:apply-templates select="表:字体格式[字:上下标]"/>
</xsl:for-each>
</xsl:if>
<!-- if ConditionalFormatting exists,transforing the styles -->
<!--xsl:if test="$uofSheetCom/表:条件格式化集">
<xsl:call-template name="CondFormat_automatic_style"/>
</xsl:if-->
<xsl:if test="$uofSheetCom/表:条件格式化集/表:条件格式化">
<xsl:variable name="style-name" select="$first-style/@表:标识符"/>
<xsl:variable name="left-top">
<xsl:call-template name="search-left-top-in-tables">
<xsl:with-param name="cellstylename" select="$style-name"/>
<xsl:with-param name="tableslist" select="$uofSheet1/表:工作表内容"/>
<xsl:with-param name="return" select="''"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="after-translated-left-top">
<xsl:call-template name="translate-left-top">
<xsl:with-param name="left-top" select="$left-top"/>
</xsl:call-template>
</xsl:variable>
<xsl:if test="$after-translated-left-top!=''">
<xsl:call-template name="create-the-condition-format-map">
<xsl:with-param name="condition-format-set" select="$uofSheetCom/表:条件格式化集//表:条件格式化"/>
<xsl:with-param name="current-left-top" select="$after-translated-left-top"/>
</xsl:call-template>
</xsl:if>
</xsl:if>
<xsl:apply-templates select="/uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/表:列/表:单元格/*[descendant-or-self::*[namespace-uri()='http://www.w3.org/TR/REC-html40']]"/>
<!--xsl:apply-templates select="$uofSheet1/表:工作表属性/表:页面设置/表:页眉页脚/字:段落" /-->
<xsl:call-template name="create-page-master">
<xsl:with-param name="worksheetoptions" select="$uofSheet1/表:工作表属性"/>
</xsl:call-template>
<xsl:for-each select="uof:句式样">
<style:style>
<xsl:attribute name="style:name"><xsl:value-of select="@字:标识符"/></xsl:attribute>
<xsl:attribute name="style:family">text</xsl:attribute>
<style:text-properties>
<xsl:apply-templates select="./*"/>
</style:text-properties>
</style:style>
</xsl:for-each>
</office:automatic-styles>
<office:master-styles>
<xsl:call-template name="create-master-styles">
<xsl:with-param name="worksheetoptions" select="$uofSheet1/表:工作表属性"/>
</xsl:call-template>
</office:master-styles>
</xsl:template>
<xsl:template match="表:数据有效性">
<xsl:variable name="range-name-temp">
<xsl:value-of select="substring-before(表:区域,'!')"/>
</xsl:variable>
<xsl:variable name="range-name">
<xsl:value-of select="substring($range-name-temp,2,string-length($range-name-temp)-2)"/>
</xsl:variable>
<xsl:variable name="first-range">
<xsl:choose>
<xsl:when test="contains(表:区域, ',')">
<xsl:value-of select="translate(substring-after(substring-before(表:区域, ','),'!'),'$','')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="translate(substring-after(表:区域,'!'),'$','')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="value-first">
<xsl:value-of select="translate(表:第一操作数,'=','')"/>
</xsl:variable>
<xsl:variable name="value-second">
<xsl:value-of select="translate(表:第二操作数,'=','')"/>
</xsl:variable>
<xsl:element name="table:content-validation">
<xsl:attribute name="table:name"><xsl:value-of select="concat('val', position())"/></xsl:attribute>
<!--:-->
<!-- don't support two type of qualifier: List, Custom -->
<xsl:attribute name="table:condition"><xsl:variable name="qualifier-content"><xsl:choose><xsl:when test="表:操作码 = 'between'"><xsl:choose><xsl:when test="(number($value-second))"><xsl:value-of select="concat('cell-content-is-between([',$range-name,'.',$value-first,'],',$value-second)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('cell-content-is-between([',$range-name,'.',$value-first,'],[',$range-name,'.',$value-second,']')"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:操作码 = 'not between'"><xsl:choose><xsl:when test="number($value-second)"><xsl:value-of select="concat('cell-content-is-not-between([',$range-name,'.',$value-first,'],',$value-second)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('cell-content-is-not-between([',$range-name,'.',$value-first,'],[',$range-name,'.',$value-second,']')"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:操作码 = 'not equal to'"><xsl:value-of select="concat('!=', $value-first)"/></xsl:when><xsl:when test="表:操作码 = 'equal to'"><xsl:variable name="range1"><xsl:value-of select="substring-after(substring-before($value-first,':'),'(')"/></xsl:variable><xsl:variable name="range2"><xsl:value-of select="substring-before(substring-after($value-first,':'),')')"/></xsl:variable><xsl:value-of select="concat('=SUM([',$range-name,'.',$range1,':',$range-name,'.',$range2,']')"/></xsl:when><xsl:when test="表:操作码 = 'less than'"><xsl:value-of select="concat('&lt;', $value-first)"/></xsl:when><xsl:when test="表:操作码 = 'greater than'"><xsl:value-of select="concat('&gt;', $value-first)"/></xsl:when><xsl:when test="表:操作码 = 'greater than or equal to'"><xsl:value-of select="concat('&gt;=[',$range-name, '.',$value-first,']')"/></xsl:when><xsl:when test="表:操作码 = 'less than or equal to'"><xsl:value-of select="concat('&lt;=[',$range-name,'.', $value-first,']')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('([',$range-name,'.',substring-before($value-first,':'),':',$range-name,'.',substring-after($value-first,':'),'])')"/></xsl:otherwise></xsl:choose></xsl:variable><!----><xsl:variable name="qualifier-value"><xsl:choose><xsl:when test="表:校验类型 = 'whole number'"><xsl:choose><xsl:when test="(表:操作码 = 'not between') or (表:操作码 = 'between')"><xsl:value-of select="concat('oooc:cell-content-is-whole-number() and ', $qualifier-content, ')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-is-whole-number() and ', 'cell-content()', $qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:校验类型 = 'decimal'"><xsl:choose><xsl:when test="(表:操作码 = 'not between') or (表:操作码 = 'between')"><xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and ', $qualifier-content, ')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and ', 'cell-content()', $qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:校验类型 = 'list'"><xsl:choose><xsl:when test="(表:操作码 = 'not between') or (表:操作码 = 'between')"><xsl:value-of select="concat('oooc:cell-content-is-in-list() and ', $qualifier-content, ')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-is-in-list',$qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:校验类型 = 'date'"><xsl:choose><xsl:when test="(表:操作码 = 'not between') or (表:操作码 = 'between')"><xsl:value-of select="concat('oooc:cell-content-is-date() and ', $qualifier-content, ')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-is-date() and ', 'cell-content()', $qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:校验类型 = 'time'"><xsl:choose><xsl:when test="(表:操作码 = 'not between') or (表:操作码 = 'between')"><xsl:value-of select="concat('oooc:cell-content-is-time() and ', $qualifier-content, ')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-is-time() and ', 'cell-content()', $qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:校验类型 = 'text length'"><xsl:choose><xsl:when test="表:操作码 = 'not between'"><xsl:choose><xsl:when test="number($value-second)"><xsl:value-of select="concat('oooc:cell-content-text-length-is-not-between([', $range-name,'.',$value-first, '],', $value-second, ')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-text-length-is-not-between([',$range-name,'.', $value-first, '],[',$range-name,'.', $value-second, '])')"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="$value-second and $value-first"><xsl:choose><xsl:when test="number($value-second)"><xsl:value-of select="concat('oooc:cell-content-text-length-is-between([',$range-name,'.',$value-first,'],',$value-second,')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-text-length-is-between([',$range-name,'.',$value-first,'],[',$range-name,'.',$value-second,'])')"/></xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-text-length()', $qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:校验类型 = 'custom'"><xsl:choose><xsl:when test="表:操作码 = 'between'"><xsl:value-of select="concat('and cell-content-is-between(',substring-before($value-first,'('),'([',$range-name,'.',substring-after(substring-before($value-first,':'),'('),':',$range-name,'.',substring-before(substring-after($value-first,':'),')'),']),0')"/></xsl:when><xsl:when test="表:操作码 = 'not between'"><xsl:value-of select="concat('oooc:and cell-content-is-not-between(',substring-before($value-first,'('),'([',$range-name,'.',substring-after(substring-before($value-first,':'),'('),':',$range-name,'.',substring-before(substring-after($value-first,':'),')'),']),0')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-is-custom() and ', 'cell-content()', $qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise><xsl:value-of select="表:校验类型"/></xsl:otherwise></xsl:choose></xsl:variable><xsl:value-of select="$qualifier-value"/></xsl:attribute>
<!---->
<xsl:attribute name="table:allow-empty-cell"><xsl:choose><xsl:when test="表:忽略空格"><xsl:value-of select="'false'"/></xsl:when><xsl:otherwise><xsl:value-of select="'true'"/></xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:attribute name="table:base-cell-address"><xsl:variable name="range"><xsl:value-of select="$first-range"/><!--xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="0" />
<xsl:with-param name="cell-column-pos" select="0" />
<xsl:with-param name="expression" select="$first-range" />
<xsl:with-param name="return-value" select="''" />
</xsl:call-template--></xsl:variable><xsl:call-template name="encode-as-cell-address"><xsl:with-param name="string" select="concat($range-name, '.', $range)"/></xsl:call-template></xsl:attribute>
<!---->
<xsl:element name="table:help-message">
<xsl:attribute name="table:title"><xsl:value-of select="表:输入提示/@表:标题"/></xsl:attribute>
<xsl:attribute name="table:display"><xsl:choose><xsl:when test="表:输入提示/@表:显示"><xsl:value-of select="表:输入提示/@表:显示"/></xsl:when><xsl:otherwise><xsl:value-of select="'false'"/></xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:element name="text:p">
<xsl:value-of select="表:输入提示/@表:内容"/>
</xsl:element>
</xsl:element>
<!---->
<xsl:element name="table:error-message">
<xsl:attribute name="table:message-type"><xsl:choose><xsl:when test="表:错误提示/@表:类型= 'information'"><xsl:value-of select="'information'"/></xsl:when><xsl:when test="表:错误提示/@表:类型= 'warning'"><xsl:value-of select="'warning'"/></xsl:when><xsl:otherwise><xsl:value-of select="'stop'"/></xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:attribute name="table:title"><xsl:value-of select="表:错误提示/@表:标题"/></xsl:attribute>
<xsl:attribute name="table:display"><xsl:choose><xsl:when test="表:错误提示/@表:显示"><xsl:value-of select="表:错误提示/@表:显示"/></xsl:when><xsl:otherwise><xsl:value-of select="'false'"/></xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:element name="text:p">
<xsl:value-of select="表:错误提示/@表:内容"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template name="CondFormat_office_style">
<xsl:for-each select="../../uof:电子表格/表:公用处理规则/表:条件格式化集/表:条件格式化">
<xsl:variable name="table-pos" select="count(../../../preceding-sibling::表:公用处理规则)+1"/>
<xsl:variable name="conditions" select="count(../preceding-sibling::表:条件格式化集)+1"/>
<xsl:for-each select="表:条件">
<xsl:variable name="condition-number" select="count(preceding-sibling::表:条件)+1"/>
<xsl:element name="style:style">
<xsl:attribute name="style:name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat('Excel_CondFormat_',$table-pos,'_',$conditions,'_',$condition-number)"/></xsl:call-template></xsl:attribute>
<xsl:attribute name="style:family">table-cell</xsl:attribute>
<xsl:element name="style:properties">
<xsl:choose>
<xsl:when test="表:格式/@表:式样引用">
<xsl:variable name="stylevalue" select="表:格式/@表:式样引用"/>
<xsl:call-template name="recursion-condformat-style-table-cell">
<xsl:with-param name="style-value-t">
<xsl:choose>
<xsl:when test="substring($stylevalue,string-length($stylevalue),1) != ';'">
<xsl:value-of select="concat($stylevalue,';')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$stylevalue"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
</xsl:choose>
</xsl:element>
<!--xsl:element name="style:text-properties"-->
<!--chengxz0618-->
<xsl:element name="style:properties">
<xsl:choose>
<xsl:when test="表:格式/@表:式样引用">
<xsl:variable name="stylevalue" select="表:格式/@表:式样引用"/>
<xsl:call-template name="recursion-condformat-style-text">
<xsl:with-param name="style-value-t">
<xsl:choose>
<xsl:when test="substring($stylevalue,string-length($stylevalue),1) != ';'">
<xsl:value-of select="concat($stylevalue,';')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$stylevalue"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="fo:font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="style:text-underline-type"><xsl:value-of select="'single'"/></xsl:attribute>
<xsl:attribute name="style:text-underline-color"><xsl:value-of select="'font-color'"/></xsl:attribute>
<xsl:attribute name="fo:font-weight"><xsl:value-of select="'bold'"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
<xsl:template name="cell-pattern-color">
<xsl:param name="pattern"/>
<xsl:param name="color-value"/>
<xsl:param name="pattern-color-value"/>
<xsl:variable name="rev-pattern" select="1 - $pattern"/>
<xsl:variable name="color-R-value">
<xsl:call-template name="hex2decimal">
<xsl:with-param name="hex-number" select="substring($color-value,2,2)"/>
<xsl:with-param name="index" select="1"/>
<xsl:with-param name="str-length" select="2"/>
<xsl:with-param name="last-value" select="0"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="color-G-value">
<xsl:call-template name="hex2decimal">
<xsl:with-param name="hex-number" select="substring($color-value,4,2)"/>
<xsl:with-param name="index" select="1"/>
<xsl:with-param name="str-length" select="2"/>
<xsl:with-param name="last-value" select="0"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="color-B-value">
<xsl:call-template name="hex2decimal">
<xsl:with-param name="hex-number" select="substring($color-value,6,2)"/>
<xsl:with-param name="index" select="1"/>
<xsl:with-param name="str-length" select="2"/>
<xsl:with-param name="last-value" select="0"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="pattern-R-value">
<xsl:call-template name="hex2decimal">
<xsl:with-param name="hex-number" select="substring($pattern-color-value,2,2)"/>
<xsl:with-param name="index" select="1"/>
<xsl:with-param name="str-length" select="2"/>
<xsl:with-param name="last-value" select="0"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="pattern-G-value">
<xsl:call-template name="hex2decimal">
<xsl:with-param name="hex-number" select="substring($pattern-color-value,4,2)"/>
<xsl:with-param name="index" select="1"/>
<xsl:with-param name="str-length" select="2"/>
<xsl:with-param name="last-value" select="0"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="pattern-B-value">
<xsl:call-template name="hex2decimal">
<xsl:with-param name="hex-number" select="substring($pattern-color-value,6,2)"/>
<xsl:with-param name="index" select="1"/>
<xsl:with-param name="str-length" select="2"/>
<xsl:with-param name="last-value" select="0"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="R-value">
<xsl:variable name="combined-R-value">
<xsl:call-template name="decimal2hex">
<xsl:with-param name="dec-number" select="floor($color-R-value * $rev-pattern + $pattern-R-value * $pattern)"/>
<xsl:with-param name="last-value" select="'H'"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="string-length($combined-R-value) = 1">
<xsl:value-of select="concat('0',$combined-R-value)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$combined-R-value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="G-value">
<xsl:variable name="combined-G-value">
<xsl:call-template name="decimal2hex">
<xsl:with-param name="dec-number" select="floor($color-G-value * $rev-pattern + $pattern-G-value * $pattern)"/>
<xsl:with-param name="last-value" select="'H'"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="string-length($combined-G-value) = 1">
<xsl:value-of select="concat('0',$combined-G-value)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$combined-G-value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="B-value">
<xsl:variable name="combined-B-value">
<xsl:call-template name="decimal2hex">
<xsl:with-param name="dec-number" select="floor($color-B-value * $rev-pattern + $pattern-B-value * $pattern)"/>
<xsl:with-param name="last-value" select="'H'"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="string-length($combined-B-value) = 1">
<xsl:value-of select="concat('0',$combined-B-value)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$combined-B-value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="concat('#',$R-value,$G-value,$B-value)"/>
</xsl:template>
<xsl:template name="hex2decimal">
<xsl:param name="hex-number"/>
<xsl:param name="index"/>
<xsl:param name="str-length"/>
<xsl:param name="last-value"/>
<xsl:variable name="dec-char">
<xsl:call-template name="hexNumber2dec">
<xsl:with-param name="hex-value" select="substring($hex-number, $index ,1)"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="current-value" select="$last-value * 16 + $dec-char"/>
<xsl:if test="$index &lt; $str-length">
<xsl:call-template name="hex2decimal">
<xsl:with-param name="hex-number" select="$hex-number"/>
<xsl:with-param name="index" select="$index + 1"/>
<xsl:with-param name="str-length" select="$str-length"/>
<xsl:with-param name="last-value" select="$current-value"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$index = $str-length">
<xsl:value-of select="$current-value"/>
</xsl:if>
</xsl:template>
<xsl:template name="hexNumber2dec">
<xsl:param name="hex-value"/>
<xsl:choose>
<xsl:when test="$hex-value = 'A' or ($hex-value = 'a')">
<xsl:value-of select="10"/>
</xsl:when>
<xsl:when test="$hex-value = 'B' or ($hex-value = 'b')">
<xsl:value-of select="11"/>
</xsl:when>
<xsl:when test="$hex-value = 'C' or ($hex-value = 'c')">
<xsl:value-of select="12"/>
</xsl:when>
<xsl:when test="$hex-value = 'D' or ($hex-value = 'd')">
<xsl:value-of select="13"/>
</xsl:when>
<xsl:when test="$hex-value = 'E' or ($hex-value = 'e')">
<xsl:value-of select="14"/>
</xsl:when>
<xsl:when test="$hex-value = 'F' or ($hex-value = 'f')">
<xsl:value-of select="15"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$hex-value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="decimal2hex">
<xsl:param name="dec-number"/>
<xsl:param name="last-value"/>
<xsl:variable name="current-value">
<xsl:call-template name="decNumber2hex">
<xsl:with-param name="dec-value">
<xsl:if test="$dec-number &gt; 15">
<xsl:value-of select="floor($dec-number div 16)"/>
</xsl:if>
<xsl:if test="$dec-number &lt; 16">
<xsl:value-of select="$dec-number"/>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:if test="$dec-number &gt; 15">
<xsl:call-template name="decimal2hex">
<xsl:with-param name="dec-number" select="$dec-number mod 16"/>
<xsl:with-param name="last-value" select="concat($last-value,$current-value)"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$dec-number &lt; 16">
<xsl:value-of select="substring-after(concat($last-value,$current-value),'H')"/>
</xsl:if>
</xsl:template>
<xsl:template name="decNumber2hex">
<xsl:param name="dec-value"/>
<xsl:choose>
<xsl:when test="$dec-value = 10">
<xsl:value-of select="'A'"/>
</xsl:when>
<xsl:when test="$dec-value = 11">
<xsl:value-of select="'B'"/>
</xsl:when>
<xsl:when test="$dec-value = 12">
<xsl:value-of select="'C'"/>
</xsl:when>
<xsl:when test="$dec-value = 13">
<xsl:value-of select="'D'"/>
</xsl:when>
<xsl:when test="$dec-value = 14">
<xsl:value-of select="'E'"/>
</xsl:when>
<xsl:when test="$dec-value = 15">
<xsl:value-of select="'F'"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$dec-value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="recursion-condformat-style-table-cell">
<xsl:param name="style-value-t"/>
<xsl:variable name="style-value" select="$style-value-t"/>
<xsl:choose>
<xsl:when test="starts-with($style-value,'background')">
<xsl:choose>
<xsl:when test="contains($style-value,'mso-pattern')">
<xsl:variable name="color-value">
<xsl:call-template name="translate-color-style">
<xsl:with-param name="source-str" select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="mso-value">
<xsl:call-template name="translate-color-style">
<xsl:with-param name="source-str" select="normalize-space(substring-after($style-value,'mso-pattern'))"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="mso-color" select="substring-after($mso-value,'#')"/>
<xsl:variable name="pattern-color-value" select="substring($mso-color,1,6)"/>
<xsl:variable name="pattern" select="concat('0.',normalize-space(substring-before(substring-after($mso-color,'gray-'),';')))"/>
<xsl:variable name="pattern-color">
<xsl:call-template name="cell-pattern-color">
<xsl:with-param name="pattern" select="$pattern"/>
<xsl:with-param name="color-value" select="$color-value"/>
<xsl:with-param name="pattern-color-value" select="concat('#',$pattern-color-value)"/>
</xsl:call-template>
</xsl:variable>
<xsl:attribute name="fo:background-color"><xsl:value-of select="normalize-space($pattern-color)"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="fo:background-color"><xsl:call-template name="translate-color-style"><xsl:with-param name="source-str" select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/></xsl:call-template></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="starts-with($style-value,'border')">
<xsl:attribute name="fo:border"><xsl:value-of select="'0.002cm solid #000000'"/></xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:if test="contains($style-value,':')">
<xsl:call-template name="recursion-condformat-style-table-cell">
<xsl:with-param name="style-value-t" select="substring-after($style-value,';')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="recursion-condformat-style-text">
<xsl:param name="style-value-t"/>
<xsl:variable name="style-value" select="normalize-space($style-value-t)"/>
<xsl:choose>
<xsl:when test="starts-with($style-value,'color')">
<xsl:attribute name="fo:color"><xsl:call-template name="translate-color-style"><xsl:with-param name="source-str" select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/></xsl:call-template></xsl:attribute>
</xsl:when>
<xsl:when test="starts-with($style-value,'font-style')">
<xsl:attribute name="fo:font-style"><xsl:value-of select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/></xsl:attribute>
</xsl:when>
<xsl:when test="starts-with($style-value,'font-weight')">
<xsl:variable name="font-weight" select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/>
<xsl:attribute name="fo:font-weight"><xsl:choose><xsl:when test="($font-weight &gt; 300) and ($font-weight &lt; 500)"><xsl:value-of select="'normal'"/></xsl:when><xsl:when test="($font-weight &gt; 500) or ($font-weight = 500)"><xsl:value-of select="'bold'"/></xsl:when><xsl:otherwise><xsl:value-of select="'0'"/></xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:when>
<xsl:when test="starts-with($style-value,'text-underline-style')">
<xsl:attribute name="style:text-underline-type"><xsl:value-of select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/></xsl:attribute>
<xsl:attribute name="style:text-underline-color"><xsl:value-of select="'#000000'"/></xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:if test="contains($style-value,':')">
<xsl:call-template name="recursion-condformat-style-text">
<xsl:with-param name="style-value-t" select="substring-after($style-value,';')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="translate-color-style">
<xsl:param name="source-str"/>
<xsl:choose>
<xsl:when test="starts-with($source-str,'#')">
<xsl:value-of select="$source-str"/>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="starts-with($source-str,'black')">
<xsl:value-of select="'#000000'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'maroon')">
<xsl:value-of select="'#800000'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'red')">
<xsl:value-of select="'#FF0000'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'fuchsia')">
<xsl:value-of select="'#FF00FF'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'olive')">
<xsl:value-of select="'#808000'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'yellow')">
<xsl:value-of select="'#FFFF00'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'green')">
<xsl:value-of select="'#008000'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'lime')">
<xsl:value-of select="'#00FF00'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'teal')">
<xsl:value-of select="'#008080'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'aqua')">
<xsl:value-of select="'#00FFFF'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'navy')">
<xsl:value-of select="'#000080'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'blue')">
<xsl:value-of select="'#0000FF'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'purple')">
<xsl:value-of select="'#800080'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'gray')">
<xsl:value-of select="'#808080'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'silver')">
<xsl:value-of select="'#C0C0C0'"/>
</xsl:when>
<xsl:when test="starts-with($source-str,'white')">
<xsl:value-of select="'#FFFFFF'"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'#FFFFFF'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="CondFormat_automatic_style">
<xsl:for-each select="../uof:电子表格/表:公用处理规则/表:条件格式化集/表:条件格式化">
<xsl:variable name="table-pos" select="count(../../../preceding-sibling::表:公用处理规则)+1"/>
<xsl:variable name="conditions" select="count(../preceding-sibling::表:条件格式化集)+1"/>
<xsl:element name="style:style">
<xsl:attribute name="style:name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat('ce',$table-pos,'-',$conditions)"/></xsl:call-template></xsl:attribute>
<xsl:attribute name="style:family">table-cell</xsl:attribute>
<xsl:for-each select="uof:单元格式样/表:条件">
<xsl:variable name="condition-number" select="count(preceding-sibling::表:条件)+1"/>
<xsl:variable name="base-address">
<xsl:choose>
<xsl:when test="contains(../表:区域,',')">
<xsl:choose>
<xsl:when test="contains(substring-before(../表:区域,','),':')">
<xsl:value-of select="substring-before(substring-after(../表:区域,':'),',')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-before(../表:区域,',')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="../表:区域"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="base-cell-address">
<xsl:call-template name="translate-unit">
<xsl:with-param name="column-number" select="substring-before(substring-after($base-address,'R'),'C')"/>
<xsl:with-param name="row-number" select="substring-after($base-address,'C')"/>
<xsl:with-param name="column-pos-style" select="absolute"/>
<xsl:with-param name="row-pos-style" select="absolute"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="condition-value">
<xsl:call-template name="translate-condition">
</xsl:call-template>
</xsl:variable>
<xsl:element name="style:map">
<xsl:attribute name="style:condition"><xsl:value-of select="$condition-value"/></xsl:attribute>
<xsl:attribute name="style:apply-style-name"><xsl:value-of select="concat('Excel_CondFormat_',$table-pos,'_',$conditions,'_',$condition-number)"/></xsl:attribute>
<xsl:attribute name="style:base-cell-address"><xsl:value-of select="concat(../../@Name,'.',$base-cell-address)"/></xsl:attribute>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</xsl:template>
<xsl:template name="translate-condition">
<xsl:variable name="address-value">
<xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="0"/>
<xsl:with-param name="cell-column-pos" select="0"/>
<xsl:with-param name="expression" select="表:第一操作数"/>
<xsl:with-param name="return-value" select="''"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="表:操作码">
<xsl:variable name="qualifier" select="表:操作码"/>
<xsl:variable name="first-value" select="表:第一操作数"/>
<xsl:choose>
<xsl:when test="$qualifier = 'Equal'">
<xsl:choose>
<xsl:when test="starts-with($first-value,'&quot;')">
<xsl:value-of select="concat('cell-content()=',$address-value)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('cell-content()=[',$address-value,']')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$qualifier = 'Less'">
<xsl:value-of select="concat('cell-content()&lt;[',$address-value,']')"/>
</xsl:when>
<xsl:when test="$qualifier = 'Greater'">
<xsl:value-of select="concat('cell-content()&gt;[',$address-value,']')"/>
</xsl:when>
<xsl:when test="$qualifier = 'LessOrEqual'">
<xsl:value-of select="concat('cell-content()&lt;=[',$address-value,']')"/>
</xsl:when>
<xsl:when test="$qualifier = 'GreaterOrEqual'">
<xsl:value-of select="concat('cell-content()&gt;=[',$address-value,']')"/>
</xsl:when>
<xsl:when test="$qualifier = 'NotEqual'">
<xsl:value-of select="concat('cell-content()!=[',$address-value,']')"/>
</xsl:when>
<xsl:when test="$qualifier = 'Between'">
<xsl:variable name="second-value">
<xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="0"/>
<xsl:with-param name="cell-column-pos" select="0"/>
<xsl:with-param name="expression" select="表:第二操作数"/>
<xsl:with-param name="return-value" select="''"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="concat('cell-content-is-between([',$address-value,'],[',$second-value,'])')"/>
</xsl:when>
<xsl:when test="$qualifier = 'NotBetween'">
<xsl:variable name="second-value">
<xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="0"/>
<xsl:with-param name="cell-column-pos" select="0"/>
<xsl:with-param name="expression" select="表:第二操作数"/>
<xsl:with-param name="return-value" select="''"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="concat('cell-content-is-not-between([',$address-value,'],[',$second-value,'])')"/>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('is-true-formula(',$address-value,')')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="translate-expression">
<xsl:param name="cell-row-pos"/>
<xsl:param name="cell-column-pos"/>
<xsl:param name="expression"/>
<xsl:param name="return-value"/>
<xsl:variable name="temp-range">
<xsl:choose>
<xsl:when test="$expression != ''">
<xsl:call-template name="parse-range-name">
<xsl:with-param name="expression" select="$expression"/>
<xsl:with-param name="return-value" select="''"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="''"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="range-type">
<xsl:choose>
<xsl:when test="substring($temp-range, 1, 1) = '1'">
<xsl:value-of select="1"/>
</xsl:when>
<xsl:when test="substring($temp-range, 1, 1) = '2'">
<xsl:value-of select="2"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="2"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="current-range">
<xsl:value-of select="substring($temp-range, 2)"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$range-type = 1">
<xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
<xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
<xsl:with-param name="expression">
<xsl:choose>
<xsl:when test="contains($current-range, '#$')">
<xsl:variable name="temp-token">
<xsl:choose>
<xsl:when test="contains($current-range, '\')">
<xsl:value-of select="concat(']', substring-after($current-range, '#$'), &quot;&apos;&quot;)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-after($current-range, '#$')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="substring-after($expression, $temp-token)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-after($expression, $current-range)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
<xsl:with-param name="return-value">
<xsl:choose>
<xsl:when test="$current-range = '='">
<xsl:text>oooc:=</xsl:text>
</xsl:when>
<xsl:when test="substring($current-range, string-length($current-range)) = '('">
<xsl:value-of select="concat($return-value, substring-before($expression, $current-range), $current-range, '[.')"/>
</xsl:when>
<xsl:when test="$current-range = ','">
<xsl:value-of select="concat($return-value, substring-before($expression, $current-range), '];[.')"/>
</xsl:when>
<xsl:when test="$current-range = ')'">
<xsl:value-of select="concat($return-value, substring-before($expression, $current-range), '])')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($return-value, substring-before($expression, $current-range), $current-range)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="handle-type">
<xsl:choose>
<xsl:when test="starts-with($current-range, 'R')">
<xsl:choose>
<xsl:when test="contains($current-range, 'C')">
<xsl:variable name="part-type-r">
<xsl:call-template name="handle-type-number">
<xsl:with-param name="t-part" select="substring-before( substring-after($current-range, 'R'), 'C')"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="part-type-c">
<xsl:call-template name="handle-type-number">
<xsl:with-param name="t-part" select="substring-after($current-range, 'C')"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="($part-type-r = 1) and ($part-type-c = 1)">
<xsl:value-of select="1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="4"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="part-type">
<xsl:call-template name="handle-type-number">
<xsl:with-param name="t-part" select="substring-after($current-range, 'R')"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="$part-type = 1">
<xsl:value-of select="2"/>
</xsl:when>
<xsl:when test="$part-type = 2">
<xsl:value-of select="4"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="4"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="starts-with($current-range, 'C')">
<xsl:variable name="part-type">
<xsl:call-template name="handle-type-number">
<xsl:with-param name="t-part" select="substring-after($current-range, 'C')"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="$part-type = 1">
<xsl:value-of select="3"/>
</xsl:when>
<xsl:when test="$part-type = 2">
<xsl:value-of select="4"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="4"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="4"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="$handle-type = 1">
<xsl:variable name="after-R">
<xsl:value-of select="substring(substring-after($current-range,'R'),1,1)"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$after-R='C' or $after-R='[' or $after-R='0' or $after-R='1' or $after-R='2' or $after-R='3' or $after-R='4' or $after-R='5' or $after-R='6' or $after-R='7' or $after-R='8' or $after-R='9'">
<xsl:variable name="row-pos">
<xsl:choose>
<xsl:when test="$after-R='['">
<xsl:value-of select="$cell-row-pos+substring-before( substring-after($current-range,'R['),']')"/>
</xsl:when>
<xsl:when test="$after-R='C'">
<xsl:value-of select="$cell-row-pos"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-before(substring-after($current-range,'R'),'C')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="row-pos-style">
<xsl:choose>
<xsl:when test="$after-R='[' or $after-R='C'">relative</xsl:when>
<xsl:otherwise>absolute</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="after-C">
<xsl:value-of select="substring(substring-after(substring-after($current-range,'R'),'C'),1,1)"/>
</xsl:variable>
<xsl:variable name="column-digit-length">
<xsl:choose>
<xsl:when test="$after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">
<xsl:call-template name="get-digit-length">
<xsl:with-param name="complexive-string" select="substring-after(substring-after($current-range,'R'),'C')"/>
</xsl:call-template>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="column-pos">
<xsl:choose>
<xsl:when test="$after-C='['">
<xsl:value-of select="$cell-column-pos + substring-before(substring-after(substring-after($current-range,'R'),'C['),']')"/>
</xsl:when>
<xsl:when test="$after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">
<xsl:value-of select="substring(substring-after(substring-after($current-range,'R'),'C'),1,$column-digit-length)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$cell-column-pos"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="column-pos-style">
<xsl:choose>
<xsl:when test="$after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">absolute</xsl:when>
<xsl:otherwise>relative</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="trans-unit">
<xsl:call-template name="translate-unit">
<xsl:with-param name="column-number" select="$column-pos"/>
<xsl:with-param name="row-number" select="$row-pos"/>
<xsl:with-param name="column-pos-style" select="$column-pos-style"/>
<xsl:with-param name="row-pos-style" select="$row-pos-style"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), $trans-unit)"/>
<xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
<xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
<xsl:with-param name="expression" select="substring-after($expression, $current-range)"/>
<xsl:with-param name="return-value" select="concat($return-value, $name-unit)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), translate( substring-before(substring-after($expression, '('),'R'),',!', ';.'))"/>
<xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
<xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
<xsl:with-param name="expression" select="substring-after($current-range,'R')"/>
<xsl:with-param name="return-value" select="concat($return-value, $name-unit)"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$handle-type = 2">
<xsl:variable name="after-R">
<xsl:value-of select="substring(substring-after($current-range,'R'),1,1)"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$after-R='[' or $after-R='0' or $after-R='1' or $after-R='2' or $after-R='3' or $after-R='4' or $after-R='5' or $after-R='6' or $after-R='7' or $after-R='8' or $after-R='9'">
<xsl:variable name="row-number">
<xsl:choose>
<xsl:when test="$after-R = '['">
<xsl:value-of select="substring-before(substring-after($current-range, 'R['), ']')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-after($current-range, 'R')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="row-pos">
<xsl:choose>
<xsl:when test="$after-R='['">
<xsl:value-of select="$cell-row-pos + $row-number"/>
</xsl:when>
<xsl:when test="$after-R='0' or $after-R='1' or $after-R='2' or $after-R='3' or $after-R='4' or $after-R='5' or $after-R='6' or $after-R='7' or $after-R='8' or $after-R='9'">
<xsl:value-of select="$row-number"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$cell-row-pos"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="trans-unit1">
<xsl:call-template name="translate-unit">
<xsl:with-param name="column-number" select="1"/>
<xsl:with-param name="row-number" select="$row-pos"/>
<xsl:with-param name="column-pos-style" select="'relative'"/>
<xsl:with-param name="row-pos-style" select="'relative'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="trans-unit2">
<xsl:call-template name="translate-unit">
<xsl:with-param name="column-number" select="256"/>
<xsl:with-param name="row-number" select="$row-pos"/>
<xsl:with-param name="column-pos-style" select="'relative'"/>
<xsl:with-param name="row-pos-style" select="'relative'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), $trans-unit1, ':', $trans-unit2)"/>
<xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
<xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
<xsl:with-param name="expression" select="substring-after($expression, $current-range)"/>
<xsl:with-param name="return-value" select="concat($return-value, $name-unit)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), translate( substring-before($current-range,'R'),',!', ';.'),'R')"/>
<xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
<xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
<xsl:with-param name="expression" select="substring-after($current-range,'R')"/>
<xsl:with-param name="return-value" select="concat($return-value, $name-unit)"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$handle-type = 3">
<xsl:variable name="after-C">
<xsl:value-of select="substring(substring-after($current-range,'C'),1,1)"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$after-C='[' or $after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">
<xsl:variable name="column-number">
<xsl:choose>
<xsl:when test="$after-C = '['">
<xsl:value-of select="substring-before(substring-after($current-range, 'C['), ']')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-after($current-range, 'C')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="column-pos">
<xsl:choose>
<xsl:when test="$after-C='['">
<xsl:value-of select="$cell-column-pos + $column-number"/>
</xsl:when>
<xsl:when test="$after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">
<xsl:value-of select="$column-number"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$cell-column-pos"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="trans-unit1">
<xsl:call-template name="translate-unit">
<xsl:with-param name="column-number" select="$column-pos"/>
<xsl:with-param name="row-number" select="1"/>
<xsl:with-param name="column-pos-style" select="'relative'"/>
<xsl:with-param name="row-pos-style" select="'relative'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="trans-unit2">
<xsl:call-template name="translate-unit">
<xsl:with-param name="column-number" select="$column-pos"/>
<xsl:with-param name="row-number" select="32000"/>
<xsl:with-param name="column-pos-style" select="'relative'"/>
<xsl:with-param name="row-pos-style" select="'relative'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), $trans-unit1, ':', $trans-unit2)"/>
<xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
<xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
<xsl:with-param name="expression" select="substring-after($expression, $current-range)"/>
<xsl:with-param name="return-value" select="concat($return-value, $name-unit)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), translate( substring-before($current-range,'C'),',!', ';.'),'C')"/>
<xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
<xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
<xsl:with-param name="expression" select="substring-after($current-range,'C')"/>
<xsl:with-param name="return-value" select="concat($return-value, $name-unit)"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="next-pit" select="substring-after($expression, $current-range)"/>
<xsl:choose>
<xsl:when test="contains($next-pit, '+') or contains($next-pit, '-') or contains($next-pit, '*') or contains($next-pit, '/') or contains($next-pit, ')') or contains($next-pit, '^') or contains($next-pit, ':') or contains($next-pit, '&quot;') or contains($next-pit, ';') or contains($next-pit, ',') or contains($next-pit, '[')">
<xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
<xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
<xsl:with-param name="expression" select="substring-after($expression, $current-range)"/>
<xsl:with-param name="return-value" select="concat($return-value, substring-before($expression, $current-range), $current-range)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="translate( concat($return-value, substring-before($expression, $current-range), $current-range),',!', ';.')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="parse-range-name">
<xsl:param name="expression"/>
<xsl:param name="return-value"/>
<xsl:variable name="first-one" select="substring($expression,1,1)"/>
<xsl:choose>
<xsl:when test="$first-one = '='">
<xsl:choose>
<xsl:when test="string-length(normalize-space($return-value)) &gt; 0">
<xsl:value-of select="concat('2', $return-value)"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>1=</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$first-one='(' or $first-one='!' or $first-one='&amp;'">
<xsl:value-of select="concat('1', $return-value, $first-one)"/>
</xsl:when>
<xsl:when test="$first-one='['">
<xsl:choose>
<xsl:when test="starts-with(substring-after($expression, ']'), 'C')">
<xsl:call-template name="parse-range-name">
<xsl:with-param name="expression" select="substring-after($expression, ']')"/>
<xsl:with-param name="return-value" select="concat($return-value, substring-before($expression, ']'), ']')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains(substring-before($expression, ']'), '.') and contains(substring-after($expression, ']'), '!')">
<xsl:value-of select="concat('1', &quot;&apos;&quot;, substring-before(substring-after($expression, '['), ']'), &quot;&apos;&quot;, '#$', substring-before(substring-after($expression, ']'), '!'))"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('2', $return-value, substring-before($expression, ']'), ']')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$first-one='&quot;'">
<xsl:value-of select="concat('1', $first-one, substring-before(substring-after($expression, '&quot;'), '&quot;'), '&quot;')"/>
</xsl:when>
<xsl:when test="$first-one=&quot;&apos;&quot;">
<xsl:variable name="str-in" select="substring-before(substring-after($expression, &quot;&apos;&quot;), &quot;&apos;&quot;)"/>
<xsl:choose>
<xsl:when test="contains($str-in, '\') and contains($str-in, '[') and contains($str-in, ']')">
<xsl:variable name="first-pos" select="substring-before($str-in, '[')"/>
<xsl:variable name="second-pos" select="substring-before(substring-after($str-in, '['), ']')"/>
<xsl:variable name="third-pos" select="substring-after($str-in, ']')"/>
<xsl:value-of select="concat('1', &quot;&apos;&quot;, $first-pos, $second-pos, &quot;&apos;&quot;, '#$', $third-pos)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('1', &quot;&apos;&quot;, $str-in, &quot;&apos;&quot;)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$first-one='+' or $first-one='-' or $first-one='*' or $first-one='/' or $first-one=')' or $first-one='^' or $first-one=':' or $first-one='&quot;' or $first-one=';' or $first-one=',' or $first-one='&gt;' or $first-one='&lt;'">
<xsl:choose>
<xsl:when test="$return-value = ''">
<xsl:value-of select="concat('1', $first-one)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('2', $return-value)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="$expression = ''">
<xsl:value-of select="concat('2', $return-value)"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="parse-range-name">
<xsl:with-param name="expression" select="substring($expression, 2, string-length($expression)-1)"/>
<xsl:with-param name="return-value" select="concat($return-value, substring($expression, 1, 1))"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="handle-type-number">
<xsl:param name="t-part"/>
<xsl:choose>
<xsl:when test="starts-with($t-part, '[')">
<xsl:variable name="tt-str" select="substring-before( substring-after( $t-part, '['), ']')"/>
<xsl:choose>
<xsl:when test="($tt-str &lt; 0) or ($tt-str &gt; 0) or ($tt-str = 0)">
<xsl:value-of select="1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="2"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="($t-part &lt; 0) or ($t-part &gt; 0) or ($t-part = 0)">
<xsl:value-of select="1"/>
</xsl:when>
<xsl:when test="$t-part = ''">
<xsl:value-of select="1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="2"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="translate-unit">
<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="column-number1">
<xsl:value-of select="floor( $column-number div 26 )"/>
</xsl:variable>
<xsl:variable name="column-number2">
<xsl:value-of select="$column-number mod 26"/>
</xsl:variable>
<xsl:variable name="column-character1">
<xsl:call-template name="number-to-character">
<xsl:with-param name="number" select="$column-number1"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="column-character2">
<xsl:call-template name="number-to-character">
<xsl:with-param name="number" select="$column-number2"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="$column-pos-style = 'absolute'">
<xsl:value-of select="concat( '$', $column-character1, $column-character2)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat( $column-character1, $column-character2)"/>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$row-pos-style ='absolute'">
<xsl:value-of select="concat( '$', $row-number)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$row-number"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="number-to-character">
<xsl:param name="number"/>
<xsl:choose>
<xsl:when test="$number = 0"/>
<xsl:when test="$number = 1">A</xsl:when>
<xsl:when test="$number = 2">B</xsl:when>
<xsl:when test="$number = 3">C</xsl:when>
<xsl:when test="$number = 4">D</xsl:when>
<xsl:when test="$number = 5">E</xsl:when>
<xsl:when test="$number = 6">F</xsl:when>
<xsl:when test="$number = 7">G</xsl:when>
<xsl:when test="$number = 8">H</xsl:when>
<xsl:when test="$number = 9">I</xsl:when>
<xsl:when test="$number = 10">J</xsl:when>
<xsl:when test="$number = 11">K</xsl:when>
<xsl:when test="$number = 12">L</xsl:when>
<xsl:when test="$number = 13">M</xsl:when>
<xsl:when test="$number = 14">N</xsl:when>
<xsl:when test="$number = 15">O</xsl:when>
<xsl:when test="$number = 16">P</xsl:when>
<xsl:when test="$number = 17">Q</xsl:when>
<xsl:when test="$number = 18">R</xsl:when>
<xsl:when test="$number = 19">S</xsl:when>
<xsl:when test="$number = 20">T</xsl:when>
<xsl:when test="$number = 21">U</xsl:when>
<xsl:when test="$number = 22">V</xsl:when>
<xsl:when test="$number = 23">W</xsl:when>
<xsl:when test="$number = 24">X</xsl:when>
<xsl:when test="$number = 25">Y</xsl:when>
<xsl:when test="$number = 26">Z</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
<xsl:template name="get-digit-length">
<xsl:param name="complexive-string"/>
<xsl:variable name="first-char">
<xsl:value-of select="substring( $complexive-string, 1, 1)"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$first-char = '1' or $first-char = '2' or $first-char = '3' or $first-char = '4' or $first-char = '5' or $first-char = '6' or $first-char = '7' or $first-char = '8' or $first-char = '9' or $first-char = '0' ">
<xsl:variable name="temp">
<xsl:call-template name="get-digit-length">
<xsl:with-param name="complexive-string" select="substring( $complexive-string, 2)"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$temp+1"/>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="字:句属性" mode="style">
<!--chengxz 0725-->
<xsl:if test="not(@字:式样引用)">
<xsl:element name="style:style">
<xsl:attribute name="style:name">T<xsl:number from="/uof:UOF/uof:文字处理/字:主体" level="any" count="字:句属性" format="1"/></xsl:attribute>
<xsl:attribute name="style:family">text</xsl:attribute>
<xsl:if test="@字:式样引用">
<xsl:attribute name="style:parent-style-name"><xsl:value-of select="@字:式样引用"/></xsl:attribute>
</xsl:if>
<xsl:element name="style:text-properties">
<xsl:apply-templates select="./*"/>
</xsl:element>
</xsl:element>
</xsl:if>
</xsl:template>
<xsl:template name="style-style-content">
<xsl:variable name="style-name" select="@表:标识符"/>
<xsl:variable name="apply-style-name" select="@表:名称"/>
<xsl:attribute name="style:family"><xsl:choose><xsl:when test="/uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/表:列[@表:式样引用=$style-name]">table-column</xsl:when><xsl:otherwise>table-cell</xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:if test="/uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/表:列[@表:式样引用=$style-name]/@表:列宽">
<xsl:element name="style:table-column-properties">
<xsl:attribute name="style:column-width"><xsl:value-of select="concat(/uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/表:列[@表:式样引用=$style-name]/@表:列宽,$uofUnit)"/></xsl:attribute>
<xsl:if test="/uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/表:列[@表:式样引用=$style-name]/@表:跨度">
<xsl:attribute name="fo:break-before">auto</xsl:attribute>
</xsl:if>
<xsl:for-each select="/uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/表:列[@表:式样引用=$style-name]">
<xsl:if test="preceding-sibling::表:列[1]/@表:跨度 and ancestor::表:工作表/表:分页符集/表:分页符/@表:列号">
<xsl:variable name="kuadu">
<xsl:value-of select="preceding-sibling::表:列[1]/@表:跨度"/>
</xsl:variable>
<xsl:if test="not($kuadu='1')">
<xsl:attribute name="fo:break-before">page</xsl:attribute>
</xsl:if>
<xsl:if test="$kuadu='1' and not(preceding::表:列[2])">
<xsl:attribute name="fo:break-before">page</xsl:attribute>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:element>
</xsl:if>
<xsl:element name="style:table-cell-properties">
<xsl:if test="表:对齐格式">
<xsl:if test="表:对齐格式/表:垂直对齐方式">
<xsl:variable name="vertical-align">
<xsl:choose>
<xsl:when test="表:对齐格式/表:垂直对齐方式 = 'top'">top</xsl:when>
<xsl:when test="表:对齐格式/表:垂直对齐方式 = 'center'">center</xsl:when>
<xsl:when test="表:对齐格式/表:垂直对齐方式 = 'bottom'">bottom</xsl:when>
<xsl:otherwise>middle</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:attribute name="style:vertical-align"><xsl:value-of select="$vertical-align"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:对齐格式/表:自动换行/@表:值 = 'true'">
<xsl:attribute name="fo:wrap-option">wrap</xsl:attribute>
</xsl:if>
<xsl:if test="表:对齐格式/表:缩进">
<xsl:attribute name="fo:padding-left"><xsl:variable name="indent" select="表:对齐格式/表:缩进 * 10"/><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat($indent,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
</xsl:if>
<xsl:if test="表:对齐格式/表:文字旋转角度">
<xsl:attribute name="style:rotation-angle"><xsl:choose><xsl:when test="表:对齐格式/表:文字旋转角度 &lt; 0"><xsl:value-of select="360 - 表:对齐格式/表:文字旋转角度"/></xsl:when><xsl:otherwise><xsl:value-of select="表:对齐格式/表:文字旋转角度"/></xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:attribute name="style:rotation-align">none</xsl:attribute>
</xsl:if>
<xsl:if test="表:对齐格式/表:文字方向 = 'vertical'">
<xsl:attribute name="style:direction">ttb</xsl:attribute>
<xsl:if test="not(表:对齐格式/字:水平对齐方式)">
<xsl:attribute name="style:text-align-source">fix</xsl:attribute>
</xsl:if>
</xsl:if>
</xsl:if>
<!--xsl:if test="表:边框">
<xsl:apply-templates select="表:边框" />
</xsl:if-->
<!--chenjh add again-->
<xsl:if test="表:边框/uof:上/@uof:宽度 !=''">
<xsl:variable name="top-line-width" select="concat(表:边框/uof:上/@uof:宽度,$uofUnit)"/>
<xsl:variable name="top-line-tyle">
<xsl:choose>
<xsl:when test="表:边框/uof:上/@uof:类型='single'">solid</xsl:when>
<xsl:when test="表:边框/uof:上/@uof:类型='double'">double</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="top-line-color" select="表:边框/uof:上/@uof:颜色"/>
<xsl:variable name="border-top" select="concat($top-line-width,' ',$top-line-tyle,' ',$top-line-color)"/>
<xsl:attribute name="fo:border-top"><xsl:value-of select="$border-top"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:边框/uof:下/@uof:宽度 !=''">
<xsl:variable name="bottom-line-width" select="concat(表:边框/uof:下/@uof:宽度,$uofUnit)"/>
<xsl:variable name="bottom-line-tyle">
<xsl:choose>
<xsl:when test="表:边框/uof:下/@uof:类型='single'">solid</xsl:when>
<xsl:when test="表:边框/uof:下/@uof:类型='double'">double</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="bottom-line-color" select="表:边框/uof:下/@uof:颜色"/>
<xsl:variable name="border-bottom" select="concat($bottom-line-width,' ',$bottom-line-tyle,' ',$bottom-line-color)"/>
<xsl:attribute name="fo:border-bottom"><xsl:value-of select="$border-bottom"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:边框/uof:左/@uof:宽度 !=''">
<xsl:variable name="left-line-width" select="concat(表:边框/uof:左/@uof:宽度,$uofUnit)"/>
<xsl:variable name="left-line-tyle">
<xsl:choose>
<xsl:when test="表:边框/uof:左/@uof:类型='single'">solid</xsl:when>
<xsl:when test="表:边框/uof:左/@uof:类型='double'">double</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="left-line-color" select="表:边框/uof:左/@uof:颜色"/>
<xsl:variable name="border-left" select="concat($left-line-width,' ',$left-line-tyle,' ',$left-line-color)"/>
<xsl:attribute name="fo:border-left"><xsl:value-of select="$border-left"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:边框/uof:右/@uof:宽度 !=''">
<xsl:variable name="right-line-width" select="concat(表:边框/uof:右/@uof:宽度,$uofUnit)"/>
<xsl:variable name="right-line-tyle">
<xsl:choose>
<xsl:when test="@uof:类型 = 'none'">none</xsl:when>
<xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
<xsl:when test="@uof:类型 = 'double'">double</xsl:when>
<xsl:otherwise>solid</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="right-line-color" select="表:边框/uof:右/@uof:颜色"/>
<xsl:variable name="border-right" select="concat($right-line-width,' ',$right-line-tyle,' ',$right-line-color)"/>
<xsl:attribute name="fo:border-right"><xsl:value-of select="$border-right"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:边框/uof:对角线1/@uof:宽度 !=''">
<xsl:variable name="diagonal-lr-width" select="concat(表:边框/uof:对角线1/@uof:宽度,$uofUnit)"/>
<xsl:variable name="diagonal-lr-tyle">
<xsl:choose>
<xsl:when test="表:边框/uof:对角线1/@uof:类型 = 'none'">none</xsl:when>
<xsl:when test="表:边框/uof:对角线1/@uof:类型 = 'continuous'">solid</xsl:when>
<xsl:when test="表:边框/uof:对角线1/@uof:类型 = 'double'">double</xsl:when>
<xsl:otherwise>solid</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="diagonal-lr-color" select="表:边框/uof:对角线1/@uof:颜色"/>
<xsl:variable name="border-diagonal" select="concat($diagonal-lr-width,' ',$diagonal-lr-tyle,' ',$diagonal-lr-color)"/>
<xsl:attribute name="style:diagonal-bl-tr"><xsl:value-of select="$border-diagonal"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:边框/uof:对角线2/@uof:宽度 !=''">
<xsl:variable name="diagonal-rl-width" select="concat(表:边框/uof:对角线2/@uof:宽度,$uofUnit)"/>
<xsl:variable name="diagonal-rl-tyle">
<xsl:choose>
<xsl:when test="表:边框/uof:对角线1/@uof:类型 = 'none'">none</xsl:when>
<xsl:when test="表:边框/uof:对角线1/@uof:类型 = 'continuous'">solid</xsl:when>
<xsl:when test="表:边框/uof:对角线1/@uof:类型 = 'double'">double</xsl:when>
<xsl:otherwise>solid</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="diagonal-rl-color" select="表:边框/uof:对角线2/@uof:颜色"/>
<xsl:variable name="border-diagonal" select="concat($diagonal-rl-width,' ',$diagonal-rl-tyle,' ',$diagonal-rl-color)"/>
<xsl:attribute name="style:diagonal-tl-br"><xsl:value-of select="$border-diagonal"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:边框/*/@uof:阴影">
<xsl:choose>
<xsl:when test="表:边框/uof:下/@uof:阴影 and 表:边框/uof:右/@uof:阴影">
<xsl:attribute name="style:shadow">#808080 0.18cm 0.18cm</xsl:attribute>
</xsl:when>
<xsl:when test="表:边框/uof:下/@uof:阴影 and 表:边框/uof:左/@uof:阴影">
<xsl:attribute name="style:shadow">#808080 -0.18cm 0.18cm</xsl:attribute>
</xsl:when>
<xsl:when test="表:边框/uof:上/@uof:阴影 and 表:边框/uof:右/@uof:阴影">
<xsl:attribute name="style:shadow">#808080 0.18cm -0.18cm</xsl:attribute>
</xsl:when>
<xsl:when test="表:边框/uof:上/@uof:阴影 and 表:边框/uof:左/@uof:阴影">
<xsl:attribute name="style:shadow">#808080 -0.18cm -0.18cm</xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:if>
<!-- end -->
<xsl:if test="表:填充">
<xsl:choose>
<xsl:when test="表:填充/图:颜色">
<xsl:attribute name="fo:background-color"><xsl:value-of select="表:填充/图:颜色"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:if test="表:填充/图:图案/@图:前景色">
<xsl:variable name="pattern-value">
<xsl:call-template name="cell-pattern-color">
<xsl:with-param name="pattern" select="concat('0.',substring-after(表:填充/图:图案/图:背景色,'y'))"/>
<xsl:with-param name="color-value" select="表:填充/图:颜色"/>
<xsl:with-param name="pattern-color-value" select="表:填充/图:图案/图:背景色"/>
</xsl:call-template>
</xsl:variable>
<xsl:attribute name="fo:background-color"><xsl:value-of select="$pattern-value"/></xsl:attribute>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="表:字体格式/字:隐藏文字">
<xsl:choose>
<xsl:when test="表:字体格式/字:隐藏文字 = 'true'">
<xsl:attribute name="style:cell-protect">protected formula-hidden</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style:cell-protect">none</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:attribute name="style:cell-protect">none</xsl:attribute>
<xsl:attribute name="style:text-align-source">fix</xsl:attribute>
</xsl:element>
<xsl:element name="style:paragraph-properties">
<xsl:if test="表:对齐格式/表:水平对齐方式">
<xsl:variable name="text-align">
<xsl:choose>
<xsl:when test="表:对齐格式/表:水平对齐方式 = 'left'">start</xsl:when>
<xsl:when test="表:对齐格式/表:水平对齐方式 = 'center'">center</xsl:when>
<xsl:when test="表:对齐格式/表:水平对齐方式 = 'right'">end</xsl:when>
<xsl:when test="表:对齐格式/表:水平对齐方式 = 'justify'">justify</xsl:when>
<xsl:otherwise>start</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:attribute name="fo:text-align"><xsl:value-of select="$text-align"/></xsl:attribute>
</xsl:if>
</xsl:element>
<xsl:element name="style:text-properties">
<xsl:if test="表:字体格式/字:字体">
<xsl:choose>
<xsl:when test="(表:字体格式/字:字体/@字:中文字体引用)or (表:字体格式/字:字体/@字:西文字体引用)">
<xsl:variable name="fontnameZ" select="表:字体格式/字:字体/@字:中文字体引用"/>
<xsl:variable name="fontnameX" select="表:字体格式/字:字体/@字:西文字体引用"/>
<xsl:for-each select="/uof:UOF/uof:式样集/uof:字体集/uof:字体声明">
<xsl:if test="(./@uof:标识符 = $fontnameZ)or(./@uof:标识符 = $fontnameX)">
<xsl:attribute name="style:font-name"><xsl:value-of select="./@uof:名称"/></xsl:attribute>
<xsl:attribute name="style:font-name-asian"><xsl:value-of select="./@uof:名称"/></xsl:attribute>
<xsl:attribute name="style:font-name-complex"><xsl:value-of select="./@uof:名称"/></xsl:attribute>
<xsl:attribute name="style:font-charset"><xsl:value-of select="./@uof:字体族"/></xsl:attribute>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style:font-name">Arial</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="表:字体格式/字:粗体/@字:值">
<xsl:attribute name="fo:font-weight"><xsl:choose><xsl:when test="表:字体格式/字:粗体/@字:值=1 or 表:字体格式/字:粗体/@字:值='true'">bold</xsl:when><xsl:when test="表:字体格式/字:粗体/@字:值=0 or 表:字体格式/字:粗体/@字:值='false'">normal</xsl:when></xsl:choose></xsl:attribute>
<xsl:attribute name="style:font-weight-asian"><xsl:choose><xsl:when test="表:字体格式/字:粗体/@字:值=1 or 表:字体格式/字:粗体/@字:值='true'">bold</xsl:when><xsl:when test="表:字体格式/字:粗体/@字:值=0 or 表:字体格式/字:粗体/@字:值='false'">normal</xsl:when></xsl:choose></xsl:attribute>
<xsl:attribute name="style:font-weight-complex"><xsl:choose><xsl:when test="表:字体格式/字:粗体/@字:值=1 or 表:字体格式/字:粗体/@字:值='true'">bold</xsl:when><xsl:when test="表:字体格式/字:粗体/@字:值=0 or 表:字体格式/字:粗体/@字:值='false'">normal</xsl:when></xsl:choose></xsl:attribute>
</xsl:if>
<xsl:if test="表:字体格式/字:斜体/@字:值">
<xsl:attribute name="fo:font-style"><xsl:choose><xsl:when test="表:字体格式/字:斜体/@字:值=1 or 表:字体格式/字:斜体/@字:值='true'">italic</xsl:when><xsl:when test="表:字体格式/字:斜体/@字:值=0 or 表:字体格式/字:斜体/@字:值='false'">normal</xsl:when></xsl:choose></xsl:attribute>
<xsl:attribute name="style:font-style-asian"><xsl:choose><xsl:when test="表:字体格式/字:斜体/@字:值=1 or 表:字体格式/字:斜体/@字:值='true'">italic</xsl:when><xsl:when test="表:字体格式/字:斜体/@字:值=0 or 表:字体格式/字:斜体/@字:值='false'">normal</xsl:when></xsl:choose></xsl:attribute>
<xsl:attribute name="style:font-style-complex"><xsl:choose><xsl:when test="表:字体格式/字:斜体/@字:值=1 or 表:字体格式/字:斜体/@字:值='true'">italic</xsl:when><xsl:when test="表:字体格式/字:斜体/@字:值=0 or 表:字体格式/字:斜体/@字:值='false'">normal</xsl:when></xsl:choose></xsl:attribute>
</xsl:if>
<xsl:choose>
<xsl:when test="表:字体格式/字:字体/@字:颜色">
<xsl:attribute name="fo:color"><xsl:value-of select="表:字体格式/字:字体/@字:颜色"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style:use-window-font-color">true</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="表:字体格式/字:字体/@字:字号">
<xsl:attribute name="fo:font-size"><xsl:value-of select="concat( 表:字体格式/字:字体/@字:字号, 'pt')"/></xsl:attribute>
<xsl:attribute name="style:font-size-asian"><xsl:value-of select="concat( 表:字体格式/字:字体/@字:字号, 'pt')"/></xsl:attribute>
<xsl:attribute name="style:font-size-complex"><xsl:value-of select="concat( 表:字体格式/字:字体/@字:字号, 'pt')"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="fo:font-size">12pt</xsl:attribute>
<xsl:attribute name="style:font-size-asian">12pt</xsl:attribute>
<xsl:attribute name="style:font-size-complex">12pt</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="表:字体格式/字:浮雕">
<xsl:variable name="aa">
<xsl:value-of select="表:字体格式/字:浮雕/@字:类型"/>
</xsl:variable>
<xsl:attribute name="style:font-relief"><xsl:choose><xsl:when test="$aa='emboss'">embossed</xsl:when><xsl:when test="$aa='engrave'">engraved</xsl:when></xsl:choose></xsl:attribute>
</xsl:if>
<xsl:if test="表:字体格式/字:阴影/@字:值 = '1' or 表:字体格式/字:阴影/@字:值 = 'true'">
<xsl:attribute name="fo:text-shadow">1pt 1pt</xsl:attribute>
</xsl:if>
<xsl:if test="表:字体格式/字:删除线">
<xsl:attribute name="style:text-line-through-style">solid</xsl:attribute>
<xsl:choose>
<xsl:when test="表:字体格式/字:删除线/@字:类型='double'">
<xsl:attribute name="style:text-line-through-type">double</xsl:attribute>
</xsl:when>
<xsl:when test="表:字体格式/字:删除线/@字:类型='single'">
<xsl:attribute name="style:text-underline-mode">continuous</xsl:attribute>
<xsl:attribute name="style:text-line-through-mode">continuous</xsl:attribute>
</xsl:when>
<xsl:when test="表:字体格式/字:删除线/@字:类型='bold'">
<xsl:attribute name="style:text-line-through-width">bold</xsl:attribute>
</xsl:when>
<xsl:when test="表:字体格式/字:删除线/@字:类型='带/'">
<xsl:attribute name="style:text-line-through-text">/</xsl:attribute>
</xsl:when>
<xsl:when test="表:字体格式/字:删除线/@字:类型='带X'">
<xsl:attribute name="style:text-line-through-text">X</xsl:attribute>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:if>
<xsl:if test="表:字体格式/字:下划线">
<xsl:apply-templates select="表:字体格式/字:下划线"/>
</xsl:if>
</xsl:if>
<xsl:if test="表:字体格式/字:着重号">
<xsl:apply-templates select="表:字体格式/字:着重号"/>
</xsl:if>
<xsl:if test="表:字体格式/字:空心/@字:值='true'">
<xsl:attribute name="style:text-outline">true</xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:template>
<xsl:template name="单元格具体式样">
<xsl:choose>
<xsl:when test="@表:类型 = 'Default'">
<xsl:element name="style:default-style">
<xsl:call-template name="style-style-content"/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="style:style">
<xsl:attribute name="style:name"><xsl:value-of select="@表:标识符"/></xsl:attribute>
<xsl:if test="表:数字格式/@表:格式码 = 'general'">
<xsl:attribute name="style:parent-style-name">Default</xsl:attribute>
</xsl:if>
<xsl:attribute name="style:parent-style-name">Default</xsl:attribute>
<xsl:attribute name="style:data-style-name"><xsl:value-of select="concat( @表:标识符, 'F')"/></xsl:attribute>
<!--chengxz -->
<!--xsl:attribute name="style:data-style-name"><xsl:value-of select="'N2'"/></xsl:attribute-->
<xsl:call-template name="style-style-content"/>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="表:边框">
<!--chengxz 0622-->
<xsl:if test="not(uof:下)">
<xsl:attribute name="fo:border-bottom">none</xsl:attribute>
</xsl:if>
<xsl:if test="not(uof:上)">
<xsl:attribute name="fo:border-top">none</xsl:attribute>
</xsl:if>
<xsl:if test="not(uof:左)">
<xsl:attribute name="fo:border-left">none</xsl:attribute>
</xsl:if>
<xsl:if test="not(uof:右)">
<xsl:attribute name="fo:border-right">none</xsl:attribute>
</xsl:if>
<xsl:apply-templates select="uof:对角线1"/>
<xsl:apply-templates select="uof:对角线2"/>
<xsl:apply-templates select="uof:上"/>
<xsl:apply-templates select="uof:下"/>
<xsl:apply-templates select="uof:左"/>
<xsl:apply-templates select="uof:右"/>
</xsl:template>
<xsl:template match="uof:上">
<xsl:variable name="bordtype">
<xsl:choose>
<xsl:when test="@uof:类型 = 'none'">none</xsl:when>
<xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
<xsl:when test="@uof:类型 = 'double'">double</xsl:when>
<!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
<xsl:otherwise>solid</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:attribute name="fo:border-top"><xsl:value-of select="concat(@uof:宽度 div 30,$uofUnit, ' ',$bordtype, ' ', @uof:颜色)"/></xsl:attribute>
<xsl:if test="@uof:类型 = 'double'">
<xsl:attribute name="style:border-line-width-top">0.035cm 0.035cm 0.035cm</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="uof:下">
<xsl:variable name="bordtype">
<xsl:choose>
<xsl:when test="@uof:类型 = 'none'">none</xsl:when>
<xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
<xsl:when test="@uof:类型 = 'double'">double</xsl:when>
<!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
<xsl:otherwise>solid</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:attribute name="fo:border-bottom"><xsl:value-of select="concat(@uof:宽度 div 30, $uofUnit,' ',$bordtype, ' ',@uof:颜色)"/></xsl:attribute>
<xsl:if test="@uof:类型 = 'double'">
<xsl:attribute name="style:border-line-width-bottom">0.035cm 0.035cm 0.035cm</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="uof:左">
<xsl:variable name="bordtype">
<xsl:choose>
<xsl:when test="@uof:类型 = 'none'">none</xsl:when>
<xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
<xsl:when test="@uof:类型 = 'double'">double</xsl:when>
<!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
<xsl:otherwise>solid</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:attribute name="fo:border-left"><xsl:value-of select="concat(@uof:宽度 div 30,$uofUnit, ' ',$bordtype, ' ', @uof:颜色)"/></xsl:attribute>
<xsl:if test="@uof:类型 = 'double'">
<xsl:attribute name="style:border-line-width-left">0.035cm 0.035cm 0.035cm</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="uof:右">
<xsl:variable name="bordtype">
<xsl:choose>
<xsl:when test="@uof:类型 = 'none'">none</xsl:when>
<xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
<xsl:when test="@uof:类型 = 'double'">double</xsl:when>
<!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
<xsl:otherwise>solid</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:attribute name="fo:border-right"><xsl:value-of select="concat( @uof:宽度 div 30, $uofUnit,' ',$bordtype, ' ', @uof:颜色)"/></xsl:attribute>
<xsl:if test="@uof:类型 = 'double'">
<xsl:attribute name="style:border-line-width-right">0.035cm 0.035cm 0.035cm</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="uof:对角线1">
<xsl:variable name="bordtype">
<xsl:choose>
<xsl:when test="@uof:类型 = 'none'">none</xsl:when>
<xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
<xsl:when test="@uof:类型 = 'double'">double</xsl:when>
<!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
<xsl:otherwise>solid</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:attribute name="style:diagonal-bl-tr"><xsl:value-of select="concat( @uof:宽度 div 30, $uofUnit,' ',$bordtype, ' ', @uof:颜色)"/></xsl:attribute>
<xsl:if test="@uof:类型 = 'double'">
<xsl:attribute name="style:diagonal-bl-tr-width">0.035cm 0.035cm 0.035cm</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="uof:对角线2">
<xsl:variable name="bordtype">
<xsl:choose>
<xsl:when test="@uof:类型 = 'none'">none</xsl:when>
<xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
<xsl:when test="@uof:类型 = 'double'">double</xsl:when>
<!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
<xsl:otherwise>solid</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:attribute name="style:diagonal-tl-br"><xsl:value-of select="concat( @uof:宽度 div 30, $uofUnit,' ',$bordtype, ' ', @uof:颜色)"/></xsl:attribute>
<xsl:if test="@uof:类型 = 'double'">
<xsl:attribute name="style:diagonal-tl-br-width">0.035cm 0.035cm 0.035cm</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="表:字体格式">
<xsl:choose>
<xsl:when test="字:上下标/@字:上下标 = 'sup'">
<style:style style:name="{concat(../@表:标识符,'T0')}" style:family="text">
<style:text-properties style:text-position="33% 58%"/>
</style:style>
</xsl:when>
<xsl:when test="字:上下标/@字:上下标 = 'sub'">
<style:style style:name="{concat(../@表:标识符,'T0')}" style:family="text">
<style:text-properties style:text-position="-33% 58%"/>
</style:style>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
<xsl:template name="tablecolumngroup">
<xsl:param name="start"/>
<xsl:param name="end"/>
<xsl:param name="prestart"/>
<xsl:param name="preend"/>
<xsl:param name="nextstart"/>
<xsl:param name="nextend"/>
<table:table-column-group>
<table:table-column>
<xsl:attribute name="table:style-name">co1</xsl:attribute>
<xsl:attribute name="table:table-column-repeated"><xsl:value-of select="@表:终止 - @表:起始 + 1"/></xsl:attribute>
</table:table-column>
<xsl:if test="$nextstart &gt;= $start and $nextend &lt;= $end">
<xsl:for-each select="following-sibling::表:列[1]">
<xsl:call-template name="tablecolumngroup"/>
</xsl:for-each>
</xsl:if>
</table:table-column-group>
</xsl:template>
<xsl:template match="表:工作表">
<xsl:variable name="rowpath" select="表:工作表内容/表:行"/>
<xsl:variable name="colpath" select="表:工作表内容/表:列"/>
<xsl:element name="table:table">
<xsl:attribute name="table:name"><xsl:value-of select="@表:名称"/></xsl:attribute>
<xsl:if test="表:工作表内容">
<xsl:attribute name="table:style-name"><xsl:value-of select="concat( 'ta', count(preceding-sibling::表:工作表)+1)"/></xsl:attribute>
<xsl:if test="(@表:隐藏 = '1')or(@表:隐藏 = 'true')">
<xsl:attribute name="table:protected">true</xsl:attribute>
</xsl:if>
<xsl:if test="表:工作表内容/uof:锚点 or 表:工作表内容/表:图表">
<table:shapes>
<xsl:apply-templates select="表:工作表内容/uof:锚点"/>
<xsl:apply-templates select="表:工作表内容/表:图表">
<xsl:with-param name="table-name" select="@表:名称"/>
</xsl:apply-templates>
</table:shapes>
</xsl:if>
<xsl:variable name="table-pos">
<xsl:value-of select="count(../preceding-sibling::表:工作表)+1"/>
</xsl:variable>
<xsl:if test="表:工作表内容/表:分组集/表:列">
<xsl:for-each select="表:工作表内容/表:分组集/表:列">
<xsl:variable name="start" select="@表:起始"/>
<xsl:variable name="end" select="@表:终止"/>
<xsl:variable name="prestart" select="preceding-sibling::表:列/@表:起始"/>
<xsl:variable name="preend" select="preceding-sibling::表:列/@表:终止"/>
<xsl:variable name="nextstart" select="following-sibling::表:列/@表:起始"/>
<xsl:variable name="nextend" select="following-sibling::表:列/@表:终止"/>
<xsl:call-template name="tablecolumngroup">
<xsl:with-param name="start" select="$start"/>
<xsl:with-param name="end" select="$end"/>
<xsl:with-param name="prestart" select="$prestart"/>
<xsl:with-param name="preend" select="$preend"/>
<xsl:with-param name="nextstart" select="$nextstart"/>
<xsl:with-param name="nextend" select="$nextend"/>
</xsl:call-template>
</xsl:for-each>
</xsl:if>
<xsl:for-each select="表:工作表内容/表:列">
<table:table-column>
<xsl:attribute name="table:style-name"><xsl:value-of select="@表:式样引用"/></xsl:attribute>
<xsl:if test="@表:跨度 and not(@表:跨度='1')">
<xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="@表:跨度"/></xsl:attribute>
</xsl:if>
<xsl:if test="@表:隐藏">
<xsl:attribute name="table:visibility">collapse</xsl:attribute>
</xsl:if>
</table:table-column>
</xsl:for-each>
<xsl:variable name="condition-pos-str1">
<xsl:if test="../../表:公用处理规则/表:条件格式化集/表:条件格式化">
<xsl:call-template name="condition-row-column-string">
<xsl:with-param name="last" select="''"/>
<xsl:with-param name="total" select="count(../../表:公用处理规则/表:条件格式化集/表:条件格式化)"/>
<xsl:with-param name="index" select="1"/>
</xsl:call-template>
</xsl:if>
</xsl:variable>
<xsl:variable name="condition-pos-str2">
<xsl:if test="../../表:公用处理规则/表:数据有效性集/表:数据有效性">
<xsl:call-template name="validation-row-column-string">
<xsl:with-param name="last" select="''"/>
<xsl:with-param name="total" select="count(../../表:公用处理规则/表:数据有效性集/表:数据有效性)"/>
<xsl:with-param name="index" select="1"/>
</xsl:call-template>
</xsl:if>
</xsl:variable>
<xsl:variable name="condition-pos-str" select="concat($condition-pos-str1, $condition-pos-str2)"/>
<xsl:choose>
<xsl:when test="./表:工作表内容/表:行">
<xsl:call-template name="create-rows">
<xsl:with-param name="lastrowpos" select="0"/>
<xsl:with-param name="row-count" select="count(表:工作表内容/表:行)"/>
<xsl:with-param name="currentRow" select="1"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="tableHasStyle">
<xsl:choose>
<xsl:when test="./表:工作表内容[@表:式样引用]">
<xsl:value-of select="1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="0"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="./表:分页符集/表:分页符[@表:行号]">
<xsl:for-each select="./表:分页符集/表:分页符[@表:行号]">
<xsl:variable name="number-repeated">
<xsl:choose>
<xsl:when test="position() = 1">
<xsl:value-of select="./@表:行号"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="./@表:行号 - preceding::表:分页符[@表:行号 and (position()=count(.))]/@表:行号 - 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$number-repeated &gt; 0">
<xsl:element name="table:table-row">
<xsl:if test="($rowpath/@表:隐藏 = '1') or ($rowpath/@表:隐藏 = 'true')">
<xsl:attribute name="table:visibility">collapse</xsl:attribute>
</xsl:if>
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('ro',$table-pos)"/></xsl:attribute>
<xsl:attribute name="table:number-rows-repeated"><xsl:value-of select="$number-repeated"/></xsl:attribute>
<xsl:choose>
<xsl:when test="$tableHasStyle = 1">
<table:table-cell table:number-columns-repeated="256"/>
</xsl:when>
<xsl:otherwise>
<table:table-cell/>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:if>
<xsl:element name="table:table-row">
<xsl:if test="($colpath/@表:隐藏 = '1') or ($colpath/@表:隐藏 = 'true')">
<xsl:attribute name="table:visibility">collapse</xsl:attribute>
</xsl:if>
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('rob',$table-pos)"/></xsl:attribute>
<xsl:choose>
<xsl:when test="$tableHasStyle = 1">
<table:table-cell table:number-columns-repeated="256"/>
</xsl:when>
<xsl:otherwise>
<table:table-cell/>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:element name="table:table-row">
<xsl:choose>
<xsl:when test="表:工作表内容/@表:式样引用">
<xsl:attribute name="table:style-name"><xsl:value-of select="表:工作表内容/@表:式样引用"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:style-name"><xsl:text>ro1</xsl:text></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:element name="table:table-cell"/>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="../../表:公用处理规则/表:条件格式化集/表:条件格式化">
<xsl:variable name="condition-row-max">
<xsl:call-template name="condition-row-col-pos-max">
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="last-value" select="0"/>
<xsl:with-param name="div-value" select="'R'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="condition-col-max">
<xsl:call-template name="condition-row-col-pos-max">
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="last-value" select="0"/>
<xsl:with-param name="div-value" select="'C'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="break-row-max">
<xsl:call-template name="break-row-beyond-max">
<xsl:with-param name="pos" select="1"/>
<xsl:with-param name="last-value" select="0"/>
<xsl:with-param name="count-value" select="count(./表:分页符集/表:分页符[@表:行号])"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="end-value">
<xsl:choose>
<xsl:when test="$condition-row-max &lt; $break-row-max">
<xsl:value-of select="$break-row-max"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$condition-row-max"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="get-row-beyond-last">
<xsl:with-param name="index-value" select="1"/>
<xsl:with-param name="worksheetNo" select="count(preceding-sibling::表:工作表)+1"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="end-pos" select="$end-value"/>
<xsl:with-param name="total-col" select="$condition-col-max"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="./表:工作表内容/@表:式样引用">
<table:table-row table:style-name="ro1" table:number-rows-repeated="32000">
<table:table-cell table:number-columns-repeated="256"/>
</table:table-row>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:element>
<xsl:if test="表:图表">
<table:shapes>
<xsl:apply-templates select="表:图表">
<xsl:with-param name="table-name" select="@表:名称"/>
</xsl:apply-templates>
</table:shapes>
</xsl:if>
</xsl:template>
<!--xsl:template name="create-columns-without-input"></xsl:template>
<xsl:template name="create-columns"></xsl:template>
<xsl:template name="condition-row-column-string"></xsl:template>
<xsl:template name="validation-row-column-string"></xsl:template>
<xsl:template name="create-rows"></xsl:template>
<xsl:template name="condition-row-col-pos-max"></xsl:template>
<xsl:template name="get-row-beyond-last"></xsl:template-->
<!--xsl:template name="break-row-beyond-max"></xsl:template-->
<!-- chengxz-->
<xsl:template name="create-columns-without-input">
<xsl:param name="table-pos"/>
<xsl:variable name="rowpath" select="表:工作表内容/表:行"/>
<xsl:variable name="colpath" select="表:工作表内容/表:列"/>
<xsl:choose>
<xsl:when test="./表:分页符集/表:分页符[@表:列号]">
<xsl:for-each select="./表:分页符集/表:分页符[@表:列号]">
<xsl:variable name="number-repeated">
<xsl:choose>
<xsl:when test="position() = 1">
<xsl:value-of select="./@表:列号"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="./@表:列号 - preceding::表:分页符[@表:列号 and (position()=count(.))]/@表:列号 - 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$number-repeated &gt; 0">
<xsl:element name="table:table-column">
<xsl:if test="ancestor::表:工作表/表:工作表内容/@表:式样引用">
<xsl:attribute name="table:default-cell-style-name"><xsl:value-of select="ancestor::表:工作表/表:工作表内容/@表:式样引用"/></xsl:attribute>
</xsl:if>
<xsl:if test="($colpath/@表:隐藏 = '1') or ($colpath/@表:隐藏 = 'true')">
<xsl:attribute name="table:visibility">collapse</xsl:attribute>
</xsl:if>
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('co',$table-pos)"/></xsl:attribute>
<xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="$number-repeated"/></xsl:attribute>
</xsl:element>
</xsl:if>
<xsl:element name="table:table-column">
<xsl:if test="ancestor::表:工作表/表:工作表内容/@表:式样引用">
<xsl:attribute name="table:default-cell-style-name"><xsl:value-of select="ancestor::表:工作表/表:工作表内容/@表:式样引用"/></xsl:attribute>
</xsl:if>
<xsl:if test="($colpath/@表:隐藏 = '1') or ($colpath/@表:隐藏 = 'true')">
<xsl:attribute name="table:visibility">collapse</xsl:attribute>
</xsl:if>
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('cob',$table-pos)"/></xsl:attribute>
</xsl:element>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:element name="table:table-column">
<xsl:choose>
<xsl:when test="表:工作表内容/@表:式样引用">
<xsl:attribute name="table:style-name"><xsl:value-of select="表:工作表内容/@表:式样引用"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:style-name"><xsl:text>co1</xsl:text></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="表:工作表内容/@表:最大列 and 表:工作表内容/@表:最大列 > 0">
<xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="表:工作表内容/@表:最大列"/></xsl:attribute>
</xsl:if>
<xsl:attribute name="table:default-cell-style-name"><xsl:text>Default</xsl:text></xsl:attribute>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="create-columns">
<xsl:param name="columnCount"/>
<xsl:param name="currentColumn" select="1"/>
<xsl:param name="finishedColumns" select="0"/>
<xsl:param name="worksheetNo" select="count(preceding-sibling::表:工作表)+1"/>
<xsl:param name="currentColumnNode"/>
<xsl:choose>
<xsl:when test="$finishedColumns &lt; $columnCount">
<xsl:choose>
<xsl:when test="$currentColumnNode">
<xsl:choose>
<xsl:when test="$currentColumnNode/@表:列号 - $finishedColumns &gt; 1">
<xsl:call-template name="create-default-column">
<xsl:with-param name="currentColumn" select="$currentColumn"/>
<xsl:with-param name="currentColumnNode" select="$currentColumnNode"/>
<xsl:with-param name="worksheetNo" select="$worksheetNo"/>
</xsl:call-template>
<xsl:call-template name="create-columns">
<xsl:with-param name="columnCount" select="$columnCount"/>
<xsl:with-param name="currentColumn" select="$currentColumn"/>
<xsl:with-param name="currentColumnNode" select="$currentColumnNode"/>
<xsl:with-param name="finishedColumns" select="$finishedColumns + 1"/>
<xsl:with-param name="worksheetNo" select="$worksheetNo"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:element name="table:table-column">
<xsl:if test="($currentColumnNode/@表:隐藏 = '1') or ($currentColumnNode/@表:隐藏 = 'true')">
<xsl:attribute name="table:visibility">collapse</xsl:attribute>
</xsl:if>
<xsl:if test="$currentColumnNode/@表:跨度">
<xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="$currentColumnNode/@表:跨度 + 1"/></xsl:attribute>
</xsl:if>
<xsl:choose>
<xsl:when test="key('ColBreak', $currentColumn)">
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('cob', $worksheetNo, '-', $currentColumn)"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('co', $worksheetNo, '-', $currentColumn)"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
<xsl:call-template name="create-columns">
<xsl:with-param name="columnCount" select="$columnCount"/>
<xsl:with-param name="currentColumn" select="$currentColumn + 1"/>
<xsl:with-param name="finishedColumns" select="$finishedColumns + 1"/>
<xsl:with-param name="currentColumnNode" select="表:工作表属性/表:列[$currentColumn + 1]"/>
<xsl:with-param name="worksheetNo" select="$worksheetNo"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="create-default-column">
<xsl:with-param name="currentColumn" select="$currentColumn"/>
<xsl:with-param name="currentColumnNode" select="$currentColumnNode"/>
<xsl:with-param name="worksheetNo" select="$worksheetNo"/>
</xsl:call-template>
<xsl:call-template name="create-columns">
<xsl:with-param name="columnCount" select="$columnCount"/>
<xsl:with-param name="currentColumn" select="$currentColumn"/>
<xsl:with-param name="finishedColumns" select="$finishedColumns + 1"/>
<xsl:with-param name="worksheetNo" select="$worksheetNo"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$currentColumn = $columnCount">
<xsl:if test="表:分页符集/表:分页符/@表:列号 &gt; $finishedColumns">
<xsl:call-template name="get-column-beyond-last">
<xsl:with-param name="index-value" select="$finishedColumns"/>
<xsl:with-param name="worksheetNo" select="$worksheetNo"/>
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="get-column-beyond-last">
<xsl:param name="index-value"/>
<xsl:param name="worksheetNo"/>
<xsl:for-each select="表:分页符集/表:分页符[@表:列号]">
<xsl:variable name="each-column-value" select="@表:列号"/>
<xsl:choose>
<xsl:when test="$each-column-value + 1 &gt; $index-value">
<xsl:variable name="number-repeated">
<xsl:choose>
<xsl:when test="preceding-sibling::表:分页符[@表:列号][position()=count(.)]/@表:列号 + 1 = $index-value">
<xsl:value-of select="$each-column-value - preceding-sibling::表:分页符[@表:列号 and (position()=count(.))]/@表:列号 - 1"/>
</xsl:when>
<xsl:when test="preceding-sibling::表:分页符[@表:列号 and (position()=count(.))]/@表:列号 + 1 &gt; $index-value">
<xsl:value-of select="$each-column-value - preceding-sibling::表:分页符[@表:列号][position()=count(.)]/@表:列号 - 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$each-column-value - $index-value + 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$number-repeated &gt; 0">
<xsl:element name="table:table-column">
<xsl:attribute name="table:style-name"><xsl:value-of select="'co1'"/></xsl:attribute>
<xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="$number-repeated"/></xsl:attribute>
</xsl:element>
</xsl:if>
<xsl:element name="table:table-column">
<xsl:if test="../../表:工作表内容[@表:式样引用]">
<xsl:attribute name="table:default-cell-style-name"><xsl:value-of select="./表:工作表内容/@表:式样引用"/></xsl:attribute>
</xsl:if>
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('cob',$worksheetNo)"/></xsl:attribute>
</xsl:element>
</xsl:when>
<xsl:when test="$each-column-value + 1 = $index-value">
<xsl:element name="table:table-column">
<xsl:if test="/../../表:工作表内容[@表:式样引用]">
<xsl:attribute name="table:default-cell-style-name"><xsl:value-of select="./../../表:工作表内容/@表:式样引用"/></xsl:attribute>
</xsl:if>
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('cob',$worksheetNo)"/></xsl:attribute>
</xsl:element>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template name="condition-row-column-string">
<xsl:param name="last"/>
<xsl:param name="total"/>
<xsl:param name="index"/>
<xsl:variable name="table-pos" select="count(preceding-sibling::表:工作表)+1"/>
<xsl:variable name="current">
<xsl:call-template name="parse-range">
<xsl:with-param name="range-value" select="../../表:公用处理规则/表:条件格式化集/表:条件格式化[position() = $index]/表:范围"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="current-value" select="concat('(c',$table-pos,'-',$index,':', $current,');')"/>
<xsl:if test="$index &lt; $total">
<xsl:call-template name="condition-row-column-string">
<xsl:with-param name="last" select="concat($last, $current-value)"/>
<xsl:with-param name="total" select="$total"/>
<xsl:with-param name="index" select="$index + 1"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$index = $total">
<xsl:value-of select="concat($last, $current-value)"/>
</xsl:if>
</xsl:template>
<xsl:template name="validation-row-column-string">
<xsl:param name="last"/>
<xsl:param name="total"/>
<xsl:param name="index"/>
<xsl:variable name="table-pos" select="count(preceding-sibling::表:工作表)+1"/>
<xsl:variable name="current">
<xsl:call-template name="parse-range">
<xsl:with-param name="range-value" select="../../表:公用处理规则/表:数据有效性集/表:数据有效性[position() = $index]/表:范围"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="current-value" select="concat('(v',$index,':', $current,');')"/>
<xsl:if test="$index &lt; $total">
<xsl:call-template name="validation-row-column-string">
<xsl:with-param name="last" select="concat($last, $current-value)"/>
<xsl:with-param name="total" select="$total"/>
<xsl:with-param name="index" select="$index + 1"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$index = $total">
<xsl:value-of select="concat($last, $current-value)"/>
</xsl:if>
</xsl:template>
<xsl:template name="create-rows">
<xsl:param name="lastrowpos"/>
<xsl:param name="row-count"/>
<xsl:param name="currentRow"/>
<xsl:param name="condition-pos-str"/>
<xsl:choose>
<xsl:when test="$currentRow &lt; ($row-count + 1)">
<xsl:variable name="span-value">
<xsl:choose>
<xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:行号">
<xsl:choose>
<xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度">
<xsl:value-of select="./表:工作表内容/表:行[position() = $currentRow]/@表:行号 - $lastrowpos + ./表:工作表内容/表:行[position() = $currentRow]/@表:跨度"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="./表:工作表内容/表:行[position() = $currentRow]/@表:行号 - $lastrowpos"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度">
<xsl:value-of select="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度 + 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="current-index">
<xsl:choose>
<xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:行号">
<xsl:value-of select="./表:工作表内容/表:行[position() = $currentRow]/@表:行号"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$lastrowpos + 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="./表:工作表内容/表:分组集/表:行">
<xsl:for-each select="./表:工作表内容/表:分组集/表:行[1]">
<xsl:call-template name="table:table-row-group"/>
</xsl:for-each>
<xsl:for-each select="./表:工作表内容/表:行[not(@表:行号)]">
<xsl:call-template name="create-row">
<xsl:with-param name="index-value" select="$lastrowpos"/>
<xsl:with-param name="span-value" select="$span-value"/>
<xsl:with-param name="worksheetNo" select="count(preceding-sibling::表:工作表)+1"/>
<xsl:with-param name="row-value" select="$currentRow"/>
<xsl:with-param name="times" select="1"/>
<xsl:with-param name="current-index" select="$current-index"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
</xsl:call-template>
</xsl:for-each>
</xsl:when>
<xsl:when test="./表:工作表内容/表:分组集 and ( ./表:工作表内容/表:分组集/表:行/@表:起始 &gt;= ($currentRow - 1) and ($currentRow - 1) &lt;= ./表:工作表内容/表:分组集/表:行/@表:终止 )">
<xsl:element name="table:table-row-group">
<xsl:variable name="TempStart">
<xsl:value-of select="./表:工作表内容/表:分组集/表:行/@表:起始"/>
</xsl:variable>
<xsl:variable name="TempEnd">
<xsl:value-of select="./表:工作表内容/表:分组集/表:行/@表:终止"/>
</xsl:variable>
<xsl:for-each select="./表:工作表内容/表:行">
<xsl:if test="$TempStart &gt;= ($currentRow - 1) and ($currentRow - 1) &lt;= $TempEnd">
<xsl:call-template name="create-row">
<xsl:with-param name="index-value" select="$lastrowpos"/>
<xsl:with-param name="span-value" select="$span-value"/>
<xsl:with-param name="worksheetNo" select="count(preceding-sibling::表:工作表)+1"/>
<xsl:with-param name="row-value" select="$currentRow"/>
<xsl:with-param name="times" select="1"/>
<xsl:with-param name="current-index" select="$current-index"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="create-row">
<xsl:with-param name="index-value" select="$lastrowpos"/>
<xsl:with-param name="span-value" select="$span-value"/>
<xsl:with-param name="worksheetNo" select="count(preceding-sibling::表:工作表)+1"/>
<xsl:with-param name="row-value" select="$currentRow"/>
<xsl:with-param name="times" select="1"/>
<xsl:with-param name="current-index" select="$current-index"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
</xsl:call-template>
<xsl:if test="$currentRow &lt; $row-count">
<xsl:call-template name="create-rows">
<xsl:with-param name="lastrowpos">
<xsl:choose>
<xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:行号">
<xsl:choose>
<xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度">
<xsl:value-of select="./表:工作表内容/表:行[position() = $currentRow]/@表:行号 + ./表:工作表内容/表:行[position() = $currentRow]/@表:跨度"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="./表:工作表内容/表:行[position() = $currentRow]/@表:行号"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度">
<xsl:value-of select="$lastrowpos + ./表:工作表内容/表:行[position() = $currentRow]/@表:跨度 + 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$lastrowpos + 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
<xsl:with-param name="row-count" select="$row-count"/>
<xsl:with-param name="currentRow" select="$currentRow + 1"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
</xsl:call-template>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$currentRow = $row-count">
<xsl:variable name="last-pos">
<xsl:choose>
<xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:行号">
<xsl:choose>
<xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度">
<xsl:value-of select="./表:工作表内容/表:行[position() = $currentRow]/@表:行号 + ./表:工作表内容/表:行[position() = $currentRow]/@表:跨度"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="./表:工作表内容/表:行[position() = $currentRow]/@表:行号"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度">
<xsl:value-of select="$lastrowpos + ./表:工作表内容/表:行[position() = $currentRow]/@表:跨度 + 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$lastrowpos + 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="./表:分页符集/表:分页符/@表:行号 &gt; ($last-pos - 1) or ../../表:公用处理规则/表:条件格式化集/表:条件格式化">
<xsl:variable name="condition-row-max">
<xsl:call-template name="condition-row-col-pos-max">
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="last-value" select="0"/>
<xsl:with-param name="div-value" select="'R'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="condition-col-max">
<xsl:call-template name="condition-row-col-pos-max">
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="last-value" select="0"/>
<xsl:with-param name="div-value" select="'C'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="break-row-max">
<xsl:call-template name="break-row-beyond-max">
<xsl:with-param name="pos" select="1"/>
<xsl:with-param name="last-value" select="0"/>
<xsl:with-param name="count-value" select="count(./表:分页符集/表:分页符[@表:行号])"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="end-value">
<xsl:choose>
<xsl:when test="$condition-row-max &lt; $break-row-max">
<xsl:value-of select="$break-row-max"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$condition-row-max"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="get-row-beyond-last">
<xsl:with-param name="index-value" select="$last-pos + 1"/>
<xsl:with-param name="worksheetNo" select="count(preceding-sibling::表:工作表)+1"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="end-pos" select="$end-value"/>
<xsl:with-param name="total-col" select="$condition-col-max"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="./表:工作表内容/表:列[@表:式样引用] or ./表:工作表内容[@表:式样引用]">
<table:table-row table:style-name="ro1" table:number-rows-repeated="31990">
<table:table-cell table:number-columns-repeated="256"/>
</table:table-row>
<table:table-row table:style-name="ro1">
<table:table-cell table:number-columns-repeated="256"/>
</table:table-row>
</xsl:if>
</xsl:when>
</xsl:choose>
</xsl:template>
<!-- add row-group 2.6-->
<xsl:template name="table:table-row-group">
<xsl:param name="start"/>
<xsl:param name="end"/>
<xsl:variable name="start1" select="@表:起始"/>
<xsl:variable name="end1" select="@表:终止"/>
<xsl:variable name="nextstart" select="following-sibling::表:行/@表:起始"/>
<xsl:variable name="nextend" select="following-sibling::表:行/@表:终止"/>
<xsl:variable name="prestart" select="preceding-sibling::表:行/@表:起始"/>
<xsl:variable name="preend" select="preceding-sibling::表:行/@表:终止"/>
<xsl:variable name="numrow" select="$end1 - $start1"/>
<xsl:variable name="position" select="position()"/>
<xsl:choose>
<xsl:when test="$nextstart &gt;= $start1 and $nextend &lt;= $end1">
<table:table-row-group>
<xsl:call-template name="creategroup"/>
</table:table-row-group>
</xsl:when>
<xsl:when test="$nextstart &gt;= $end1">
<xsl:choose>
<xsl:when test="$nextend &lt;=$preend">
<xsl:call-template name="row">
<xsl:with-param name="start1" select="$start1"/>
<xsl:with-param name="end1" select="$end1"/>
<xsl:with-param name="nextstart" select="$nextstart"/>
<xsl:with-param name="nextend" select="$nextend"/>
<xsl:with-param name="prestart" select="$prestart"/>
<xsl:with-param name="preend" select="$preend"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="levelgroup"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="row">
<xsl:with-param name="start1" select="$start1"/>
<xsl:with-param name="end1" select="$end1"/>
<xsl:with-param name="nextstart" select="$nextstart"/>
<xsl:with-param name="nextend" select="$nextend"/>
<xsl:with-param name="prestart" select="$prestart"/>
<xsl:with-param name="preend" select="$preend"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="levelrowgroup">
<xsl:param name="start"/>
<xsl:param name="end"/>
<xsl:variable name="start1" select="@表:起始"/>
<xsl:variable name="end1" select="@表:终止"/>
<xsl:variable name="nextstart" select="following-sibling::表:行/@表:起始"/>
<xsl:variable name="nextend" select="following-sibling::表:行/@表:终止"/>
<xsl:variable name="prestart" select="preceding-sibling::表:行/@表:起始"/>
<xsl:variable name="preend" select="preceding-sibling::表:行/@表:终止"/>
<xsl:variable name="numrow" select="$end1 - $start1"/>
<xsl:variable name="position" select="position()"/>
<xsl:call-template name="row">
<xsl:with-param name="start1" select="$start1"/>
<xsl:with-param name="end1" select="$end1"/>
<xsl:with-param name="nextstart" select="$nextstart"/>
<xsl:with-param name="nextend" select="$nextend"/>
<xsl:with-param name="prestart" select="$prestart"/>
<xsl:with-param name="preend" select="$preend"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="creategroup">
<xsl:for-each select="following-sibling::表:行">
<xsl:variable name="start1" select="@表:起始"/>
<xsl:variable name="end1" select="@表:终止"/>
<xsl:variable name="nextstart" select="following-sibling::表:行/@表:起始"/>
<xsl:variable name="nextend" select="following-sibling::表:行/@表:终止"/>
<xsl:variable name="prestart" select="preceding-sibling::表:行/@表:起始"/>
<xsl:variable name="preend" select="preceding-sibling::表:行/@表:终止"/>
<xsl:if test="$start1 &gt;= $prestart and $end1 &lt;= $preend">
<xsl:call-template name="table:table-row-group"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template name="levelgroup">
<xsl:for-each select="parent::表:分组集/表:行">
<xsl:call-template name="levelrowgroup"/>
</xsl:for-each>
</xsl:template>
<xsl:template name="row">
<xsl:param name="start1"/>
<xsl:param name="end1"/>
<xsl:param name="nextstart"/>
<xsl:param name="nextend"/>
<xsl:param name="prestart"/>
<xsl:param name="preend"/>
<xsl:for-each select="ancestor::表:工作表内容/表:行[@表:行号]">
<xsl:variable name="rownum" select="@表:行号"/>
<xsl:variable name="aa" select="$start1 - $prestart"/>
<xsl:if test="$rownum &gt;= $prestart and $rownum &lt;= ($prestart + $aa - 1) and $start1 &lt;= $preend">
<table:table-row>
<xsl:attribute name="table:style-name"><xsl:value-of select="@表:式样引用"/></xsl:attribute>
<xsl:call-template name="celldata"/>
</table:table-row>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="ancestor::表:工作表内容/表:行[@表:行号]">
<xsl:variable name="rownum" select="@表:行号"/>
<xsl:variable name="ss" select="$start1 - $preend"/>
<xsl:if test="$rownum &gt;= ($preend +1) and $rownum &lt;= ($preend + $ss - 1) and $start1 &gt;= $preend">
<table:table-row>
<xsl:attribute name="table:style-name"><xsl:value-of select="@表:式样引用"/></xsl:attribute>
<xsl:call-template name="celldata"/>
</table:table-row>
</xsl:if>
</xsl:for-each>
<table:table-row-group>
<xsl:for-each select="ancestor::表:工作表内容/表:行[@表:行号]">
<xsl:variable name="rownum" select="@表:行号"/>
<xsl:if test="$rownum &lt;= $end1">
<xsl:if test="$rownum &gt;= $start1">
<table:table-row>
<xsl:attribute name="table:style-name"><xsl:value-of select="@表:式样引用"/></xsl:attribute>
<xsl:call-template name="celldata"/>
</table:table-row>
</xsl:if>
</xsl:if>
</xsl:for-each>
</table:table-row-group>
<xsl:for-each select="ancestor::表:工作表内容/表:行[@表:行号]">
<xsl:variable name="rownum" select="@表:行号"/>
<xsl:variable name="bb" select="$preend - $end1"/>
<xsl:if test="$rownum &gt;= ($end1 + 1) and $rownum &lt;= ($end1 + $bb) and $start1 &lt; $preend">
<table:table-row>
<xsl:attribute name="table:style-name"><xsl:value-of select="@表:式样引用"/></xsl:attribute>
<xsl:call-template name="celldata"/>
</table:table-row>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template name="celldata">
<xsl:for-each select="./表:单元格">
<table:table-cell>
<xsl:choose>
<xsl:when test="表:数据/@表:数据类型 = 'number'">
<xsl:attribute name="office:value-type">float</xsl:attribute>
<xsl:attribute name="office:value"><xsl:choose><xsl:when test="表:数据/@表:数据数值"><xsl:value-of select="表:数据/@表:数据数值"/></xsl:when><xsl:otherwise><xsl:value-of select="表:数据/字:句/字:文本串"/></xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:when>
<xsl:when test="表:数据/@表:数据类型 = 'date'">
<xsl:attribute name="office:value-type">date</xsl:attribute>
<xsl:attribute name="table:date-value"><xsl:value-of select="表:数据/@表:数据数值"/></xsl:attribute>
</xsl:when>
<xsl:when test="表:数据/@表:数据类型 = 'time'">
<xsl:attribute name="office:value-type">time</xsl:attribute>
<xsl:attribute name="table:time-value"><xsl:value-of select="表:数据/@表:数据数值"/></xsl:attribute>
</xsl:when>
<xsl:when test="表:数据/@表:数据类型 = 'boolean'">
<xsl:attribute name="office:value-type">boolean</xsl:attribute>
<xsl:attribute name="table:boolean-value"><xsl:choose><xsl:when test="表:数据/字:句/字:文本串 = '1'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:when>
<xsl:when test="表:数据/@表:数据类型 = 'text'">
<xsl:attribute name="office:value-type">string</xsl:attribute>
<xsl:attribute name="table:string-value"><xsl:value-of select="表:数据/@表:数据数值"/></xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:if test="表:数据/字:句/字:文本串">
<text:p>
<xsl:value-of select="表:数据/字:句/字:文本串"/>
</text:p>
</xsl:if>
</table:table-cell>
</xsl:for-each>
</xsl:template>
<!-- add row-group 2.8 -->
<xsl:template name="create-row">
<xsl:param name="index-value"/>
<xsl:param name="span-value"/>
<xsl:param name="worksheetNo"/>
<xsl:param name="row-value"/>
<xsl:param name="times"/>
<xsl:param name="current-index"/>
<xsl:param name="condition-pos-str"/>
<xsl:element name="table:table-row">
<xsl:choose>
<xsl:when test="./表:分页符集/表:分页符/@表:行号 = ($index-value + $times - 1)">
<xsl:choose>
<xsl:when test="($index-value + $times &lt; $current-index) and ($current-index != 0)">
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('rob',$worksheetNo)"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('rob', $worksheetNo, '-', $row-value)"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="($index-value + $times &lt; $current-index) and ($current-index != 0)">
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('ro',$worksheetNo)"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('ro', $worksheetNo, '-', $row-value)"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
<!--chengxiuzhi0617-->
<xsl:if test="./表:工作表内容/表:行[position() = $row-value]/@表:隐藏 = 'true'">
<xsl:choose>
<xsl:when test="./表:工作表内容/表:行[position() = $row-value]/@表:跨度">
<xsl:if test="$index-value + $times &gt; ($current-index - 1)">
<xsl:attribute name="table:visibility">collapse</xsl:attribute>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$index-value + $times = $current-index">
<xsl:attribute name="table:visibility">collapse</xsl:attribute>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:choose>
<xsl:when test="not(./表:工作表内容/表:行[position() = $row-value]/*)">
<table:table-cell>
<xsl:for-each select="./表:单元格/表:数据">
<xsl:choose>
<xsl:when test="@表:数据类型 = 'number'">
<xsl:attribute name="office:value-type">float</xsl:attribute>
<xsl:attribute name="office:value"><xsl:choose><xsl:when test="@表:数据数值"><xsl:value-of select="@表:数据数值"/></xsl:when><xsl:otherwise><xsl:value-of select="字:句/字:文本串"/></xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:when>
<xsl:when test="@表:数据类型 = 'date'">
<xsl:attribute name="office:value-type">date</xsl:attribute>
<xsl:attribute name="table:date-value"><xsl:value-of select="@表:数据数值"/></xsl:attribute>
</xsl:when>
<xsl:when test="@表:数据类型 = 'time'">
<xsl:attribute name="office:value-type">time</xsl:attribute>
<xsl:attribute name="table:time-value"><xsl:value-of select="@表:数据数值"/></xsl:attribute>
</xsl:when>
<xsl:when test="@表:数据类型 = 'boolean'">
<xsl:attribute name="office:value-type">boolean</xsl:attribute>
<xsl:attribute name="table:boolean-value"><xsl:choose><xsl:when test="字:句/字:文本串 = '1'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:when>
<xsl:when test="@表:数据类型 = 'text'">
<xsl:attribute name="office:value-type">string</xsl:attribute>
<xsl:attribute name="table:string-value"><xsl:value-of select="@表:数据数值"/></xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:if test="字:句/字:文本串">
<text:p>
<xsl:value-of select="字:句/字:文本串"/>
</text:p>
</xsl:if>
</xsl:for-each>
</table:table-cell>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="$index-value + $times &lt; $current-index">
<xsl:variable name="current" select="concat('R',($index-value + $times),'C')"/>
<xsl:variable name="col-pos-max">
<xsl:call-template name="condition-row-col-pos-max">
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="last-value" select="0"/>
<xsl:with-param name="div-value" select="'C'"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="contains($condition-pos-str,$current)">
<xsl:call-template name="get-cell-span-in">
<xsl:with-param name="row-pos" select="$index-value + $times"/>
<xsl:with-param name="c-start" select="1"/>
<xsl:with-param name="c-end" select="$col-pos-max"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<table:table-cell/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$index-value + $times = $current-index">
<xsl:apply-templates select="表:工作表内容/表:行[position() = $row-value]" mode="selected">
<xsl:with-param name="row-pos" select="$index-value + $times"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<table:table-cell/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
<xsl:if test="$times &lt; $span-value">
<xsl:call-template name="create-row">
<xsl:with-param name="index-value" select="$index-value"/>
<xsl:with-param name="span-value" select="$span-value"/>
<xsl:with-param name="worksheetNo" select="$worksheetNo"/>
<xsl:with-param name="row-value" select="$row-value"/>
<xsl:with-param name="times" select="$times + 1"/>
<xsl:with-param name="current-index" select="$current-index"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="condition-row-col-pos-max">
<xsl:param name="condition-pos-str"/>
<xsl:param name="last-value"/>
<xsl:param name="div-value"/>
<xsl:variable name="pre-value">
<xsl:choose>
<xsl:when test="$div-value = 'R'">
<xsl:value-of select="substring-before(substring-after($condition-pos-str,$div-value),'C')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-before(substring-after($condition-pos-str,$div-value),',')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="end-value">
<xsl:choose>
<xsl:when test="$last-value &lt; $pre-value">
<xsl:value-of select="$pre-value"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$last-value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="contains($condition-pos-str,$div-value)">
<xsl:call-template name="condition-row-col-pos-max">
<xsl:with-param name="condition-pos-str" select="substring-after($condition-pos-str,$div-value)"/>
<xsl:with-param name="last-value" select="$end-value"/>
<xsl:with-param name="div-value" select="$div-value"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$end-value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="break-row-beyond-max">
<xsl:param name="pos"/>
<xsl:param name="last-value"/>
<xsl:param name="count-value"/>
<xsl:variable name="pre-value" select="./表:分页符集/表:分页符[@表:列号 and (position() = $pos)]/@表:列号"/>
<xsl:variable name="end-value">
<xsl:choose>
<xsl:when test="$last-value &lt; $pre-value">
<xsl:value-of select="$pre-value"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$last-value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="$pos &lt; $count-value">
<xsl:call-template name="break-row-beyond-max">
<xsl:with-param name="pos" select="$pos + 1"/>
<xsl:with-param name="last-value" select="$end-value"/>
<xsl:with-param name="count-value" select="$count-value"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$end-value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="get-row-beyond-last">
<xsl:param name="index-value"/>
<xsl:param name="worksheetNo"/>
<xsl:param name="condition-pos-str"/>
<xsl:param name="end-pos"/>
<xsl:param name="total-col"/>
<xsl:variable name="current" select="concat('R',$index-value)"/>
<xsl:element name="table:table-row">
<xsl:choose>
<xsl:when test="./表:分页符集/表:分页符/@行号 = ($index-value - 1)">
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('rob',$worksheetNo)"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('ro',$worksheetNo)"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="contains($condition-pos-str,$current)">
<xsl:call-template name="get-cell-span-in">
<xsl:with-param name="row-pos" select="$index-value"/>
<xsl:with-param name="c-start" select="1"/>
<xsl:with-param name="c-end" select="$total-col"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<table:table-cell/>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
<xsl:if test="$index-value &lt; ($end-pos + 1)">
<xsl:call-template name="get-row-beyond-last">
<xsl:with-param name="index-value" select="$index-value + 1"/>
<xsl:with-param name="worksheetNo" select="$worksheetNo"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="end-pos" select="$end-pos"/>
<xsl:with-param name="total-col" select="$total-col"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="get-cell-span-in">
<xsl:param name="row-pos"/>
<xsl:param name="c-start"/>
<xsl:param name="c-end"/>
<xsl:param name="condition-pos-str"/>
<xsl:variable name="current" select="concat('R',$row-pos,'C',$c-start,',')"/>
<xsl:variable name="style-name">
<xsl:choose>
<xsl:when test="contains($condition-pos-str,$current)">
<xsl:variable name="temp-str">
<xsl:call-template name="condition-str">
<xsl:with-param name="param-str" select="substring-before($condition-pos-str,$current)"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="starts-with($temp-str, 'c')">
<xsl:value-of select="concat('ce', substring-after($temp-str, 'c'))"/>
</xsl:when>
<xsl:when test="starts-with($temp-str, 'v')">
<xsl:value-of select="concat('val', substring-after($temp-str, 'v'))"/>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="../表:单元格[position() = position() - 1]/@表:式样引用">
<xsl:value-of select="../表:单元格[position() = position() - 1]/@表:式样引用 "/>
</xsl:when>
<xsl:when test="../@表:式样引用">
<xsl:value-of select="../@表:式样引用"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'Default'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="$c-start &lt; $c-end">
<xsl:call-template name="get-cell-condition-in">
<xsl:with-param name="style-name" select="$style-name"/>
</xsl:call-template>
<xsl:call-template name="get-cell-span-in">
<xsl:with-param name="row-pos" select="$row-pos"/>
<xsl:with-param name="c-start" select="$c-start + 1"/>
<xsl:with-param name="c-end" select="$c-end"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$c-start = $c-end">
<xsl:call-template name="get-cell-condition-in">
<xsl:with-param name="style-name" select="$style-name"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<table:table-cell/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="get-cell-condition-in">
<xsl:param name="style-name"/>
<xsl:element name="table:table-cell">
<xsl:if test="not( contains($style-name, 'Default'))">
<xsl:choose>
<xsl:when test="starts-with($style-name, 'val')">
<xsl:attribute name="table:content-validation-name"><xsl:value-of select="$style-name"/></xsl:attribute>
</xsl:when>
<xsl:when test="starts-with($style-name, 'ce')">
<xsl:attribute name="table:style-name"><xsl:value-of select="$style-name"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:style-name"><xsl:value-of select="$style-name"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<!--chengxiuzhi0617 -->
</xsl:element>
</xsl:template>
<xsl:key match="/uof:UOF/uof:电子表格/表:主体/表:工作表/表:分页符集/表:分页符[@表:列号]" name="ColBreak" use="Column"/>
<xsl:template name="create-default-column">
<xsl:param name="currentColumn"/>
<xsl:param name="currentColumnNode"/>
<xsl:param name="worksheetNo"/>
<xsl:element name="table:table-column">
<xsl:attribute name="table:default-cell-style-name"><xsl:call-template name="get-default-cell-style"><xsl:with-param name="currentColumnNode" select="$currentColumnNode"/></xsl:call-template></xsl:attribute>
<xsl:choose>
<xsl:when test="key('ColBreak', $currentColumn)">
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('cob',$worksheetNo)"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:style-name"><xsl:value-of select="concat('co',$worksheetNo)"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<!--chengxiuzhi0617key-->
</xsl:element>
</xsl:template>
<xsl:template name="get-default-cell-style">
<xsl:param name="currentColumnNode"/>
<xsl:choose>
<xsl:when test="$currentColumnNode">
<xsl:choose>
<xsl:when test="$currentColumnNode/@表:式样引用">
<xsl:value-of select="$currentColumnNode/@表:式样引用"/>
</xsl:when>
<xsl:otherwise>Default</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="./表:工作表内容[@表:式样引用]">
<xsl:value-of select="./表:工作表内容/@表:式样引用"/>
</xsl:when>
<xsl:otherwise>Default</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="表:行" mode="selected">
<xsl:param name="row-pos"/>
<xsl:param name="condition-pos-str"/>
<xsl:choose>
<xsl:when test="表:单元格">
<xsl:apply-templates select="表:单元格[1]" mode="selected">
<xsl:with-param name="row-pos" select="$row-pos"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="col-pos-max">
<xsl:call-template name="condition-row-col-pos-max">
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="last-value" select="0"/>
<xsl:with-param name="div-value" select="'C'"/>
</xsl:call-template>
</xsl:with-param>
<xsl:with-param name="col-pos-before" select="0"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="current" select="concat('R',$row-pos,'C')"/>
<xsl:choose>
<xsl:when test="contains($condition-pos-str,$current)">
<xsl:call-template name="get-cell-span-in">
<xsl:with-param name="row-pos" select="$row-pos"/>
<xsl:with-param name="c-start" select="1"/>
<xsl:with-param name="c-end">
<xsl:call-template name="condition-row-col-pos-max">
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="last-value" select="0"/>
<xsl:with-param name="div-value" select="'C'"/>
</xsl:call-template>
</xsl:with-param>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="col-pos" select="1"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<table:table-cell/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="表:单元格" mode="selected">
<xsl:param name="condition-pos-str"/>
<xsl:param name="col-pos-max"/>
<xsl:param name="col-pos-before"/>
<xsl:param name="row-pos"/>
<xsl:param name="col-repeated" select="1"/>
<xsl:variable name="col-pos">
<xsl:choose>
<xsl:when test="@表:列号">
<xsl:choose>
<xsl:when test="@表:合并列数">
<xsl:value-of select="@表:合并列数 + @表:列号"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@表:列号"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="@表:合并列数">
<xsl:value-of select="1 + @表:合并列数 + $col-pos-before"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="1 + $col-pos-before"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="next-cell" select="following-sibling::表:单元格[1]"/>
<xsl:variable name="maodian" select="boolean($next-cell/uof:锚点)"/>
<xsl:variable name="cell-is-repeatable" select="not(current()/*) and not($next-cell/*) and not($next-cell/text()) and (@表:式样引用 = $next-cell/@表:式样引用) and not($next-cell/@表:列号)"/>
<xsl:if test="$col-repeated = 1">
<xsl:if test="@表:列号 != ($col-pos-before + 1)">
<xsl:call-template name="get-cell-span-in">
<xsl:with-param name="row-pos" select="$row-pos"/>
<xsl:with-param name="c-start" select="$col-pos-before + 1"/>
<xsl:with-param name="c-end" select="@表:列号 - 1"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
</xsl:call-template>
</xsl:if>
<xsl:element name="table:table-cell">
<xsl:call-template name="create-table-cell-attributes">
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="col-pos-max" select="$col-pos-max"/>
<xsl:with-param name="col-pos" select="$col-pos"/>
<xsl:with-param name="row-pos" select="$row-pos"/>
</xsl:call-template>
<xsl:if test="$cell-is-repeatable">
<xsl:apply-templates select="$next-cell" mode="selected">
<xsl:with-param name="row-pos" select="$row-pos"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="col-pos-max" select="$col-pos-max"/>
<xsl:with-param name="col-pos-before" select="$col-pos + 1"/>
<xsl:with-param name="col-repeated" select="$col-repeated + 1"/>
</xsl:apply-templates>
</xsl:if>
<xsl:call-template name="create-table-cell-content">
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="col-pos-max" select="$col-pos-max"/>
<xsl:with-param name="col-pos" select="$col-pos"/>
<xsl:with-param name="row-pos" select="$row-pos"/>
</xsl:call-template>
</xsl:element>
<xsl:if test="@表:合并列数">
<xsl:element name="table:covered-table-cell">
<xsl:if test="@表:合并列数 &gt; 1">
<xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="@表:合并列数"/></xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:if>
</xsl:if>
<xsl:choose>
<xsl:when test="not($cell-is-repeatable and $col-repeated = 1)">
<xsl:choose>
<xsl:when test="not($cell-is-repeatable) and $col-repeated &gt; 1">
<xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="$col-repeated"/></xsl:attribute>
</xsl:when>
<xsl:when test="not($next-cell)">
<xsl:if test="../../../../../表:公用处理规则/表:条件格式化集/表:条件格式化">
<xsl:call-template name="get-cell-span-in">
<xsl:with-param name="row-pos" select="$row-pos"/>
<xsl:with-param name="c-start" select="$col-pos"/>
<xsl:with-param name="c-end" select="$col-pos-max"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
</xsl:call-template>
</xsl:if>
</xsl:when>
<xsl:when test="not($cell-is-repeatable)">
<xsl:apply-templates select="$next-cell" mode="selected">
<xsl:with-param name="row-pos" select="$row-pos"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="col-pos-max" select="$col-pos-max"/>
<xsl:with-param name="col-pos-before" select="$col-pos"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="$next-cell" mode="selected">
<xsl:with-param name="row-pos" select="$row-pos"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="col-pos-max" select="$col-pos-max"/>
<xsl:with-param name="col-pos-before" select="$col-pos"/>
<xsl:with-param name="col-repeated" select="$col-repeated + 1"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$next-cell">
<xsl:apply-templates select="$next-cell" mode="skip">
<xsl:with-param name="row-pos" select="$row-pos"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="col-pos-max" select="$col-pos-max"/>
<xsl:with-param name="col-pos-before" select="$col-pos"/>
</xsl:apply-templates>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--Redoffice comment liliang sc0012 06.02.15-->
<!---->
<xsl:template match="uof:锚点">
<xsl:variable name="tuxing1" select="@uof:图形引用"/>
<xsl:choose>
<xsl:when test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]">
<xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='png' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='ipg' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='bmp' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='gif'">
<xsl:element name="draw:frame">
<xsl:attribute name="draw:name"><xsl:variable name="pos"><xsl:value-of select="count(preceding::uof:锚点)"/></xsl:variable><xsl:value-of select="concat('图形',$pos)"/></xsl:attribute>
<xsl:attribute name="svg:x"><xsl:value-of select="concat(@uof:x坐标,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:y"><xsl:value-of select="concat(@uof:y坐标,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:width"><xsl:value-of select="concat(@uof:宽度,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:height"><xsl:value-of select="concat(@uof:高度,$uofUnit)"/></xsl:attribute>
<xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]">
<xsl:attribute name="draw:style-name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
<xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
<xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
<xsl:variable name="rotate-angle">
<xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
</xsl:variable>
<xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
</xsl:if>
<xsl:if test="图:文本内容">
<xsl:apply-templates select="图:文本内容/字:段落"/>
<xsl:apply-templates select="图:文本内容/字:文字表"/>
</xsl:if>
</xsl:for-each>
<xsl:element name="draw:image">
<xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:路径">
<xsl:attribute name="xlink:href"><xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符= $tuxing1]/uof:路径"/></xsl:attribute>
</xsl:if>
<xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:数据">
<office:binary-data>
<xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:数据"/>
</office:binary-data>
</xsl:if>
</xsl:element>
</xsl:element>
</xsl:if>
</xsl:when>
<xsl:when test="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]/图:文本内容[@图:文本框='true']">
<draw:text-box text:anchor-type="paragraph">
<xsl:attribute name="draw:style-name"><xsl:value-of select="$tuxing1"/></xsl:attribute>
<xsl:attribute name="svg:width"><xsl:value-of select="concat(@uof:宽度,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:height"><xsl:value-of select="concat(@uof:高度,$uofUnit)"/></xsl:attribute>
<xsl:if test="@uof:x坐标">
<xsl:attribute name="svg:x"><xsl:value-of select="concat(@uof:x坐标,$uofUnit)"/></xsl:attribute>
</xsl:if>
<xsl:if test="@uof:y坐标">
<xsl:attribute name="svg:y"><xsl:value-of select="concat(@uof:y坐标,$uofUnit)"/></xsl:attribute>
</xsl:if>
<xsl:attribute name="draw:z-index"><xsl:value-of select="/uof:UOF/uof:对象集/图:图形/@图:层次"/></xsl:attribute>
<xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]/图:文本内容/字:段落"/>
<xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]/图:文本内容/字:文字表"/>
</draw:text-box>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="graph">
<xsl:with-param name="id" select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]"/>
<xsl:with-param name="groupx" select="0"/>
<xsl:with-param name="groupy" select="0"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="graph">
<xsl:param name="id"/>
<xsl:param name="groupx"/>
<xsl:param name="groupy"/>
<xsl:for-each select="$id">
<xsl:variable name="tuxing1">
<xsl:value-of select="图:预定义图形/图:类别"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$tuxing1='11'">
<xsl:call-template name="Rectangle">
<xsl:with-param name="groupx1" select="$groupx"/>
<xsl:with-param name="groupy1" select="$groupy"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$tuxing1='19'">
<xsl:call-template name="Oval">
<xsl:with-param name="groupx1" select="$groupx"/>
<xsl:with-param name="groupy1" select="$groupy"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$tuxing1='61'">
<xsl:call-template name="Line">
<xsl:with-param name="groupx1" select="$groupx"/>
<xsl:with-param name="groupy1" select="$groupy"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$tuxing1='64'">
<xsl:call-template name="Curve">
<xsl:with-param name="groupx1" select="$groupx"/>
<xsl:with-param name="groupy1" select="$groupy"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$tuxing1='65'">
<xsl:call-template name="Freeform">
<xsl:with-param name="groupx1" select="$groupx"/>
<xsl:with-param name="groupy1" select="$groupy"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$tuxing1='66'">
<xsl:call-template name="Scribble">
<xsl:with-param name="groupx1" select="$groupx"/>
<xsl:with-param name="groupy1" select="$groupy"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$tuxing1='4'">
<xsl:element name="draw:g">
<xsl:variable name="tu">
<xsl:value-of select="@图:标识符"/>
</xsl:variable>
<xsl:attribute name="draw:style-name"><xsl:value-of select="$tu"/></xsl:attribute>
<xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
<xsl:variable name="this-group-x">
<xsl:choose>
<xsl:when test="key('rel_graphic_name',@图:标识符)/@uof:x坐标">
<xsl:value-of select="key('rel_graphic_name',@图:标识符)/@uof:x坐标"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="number(0)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="this-group-y">
<xsl:choose>
<xsl:when test="key('rel_graphic_name',@图:标识符)/@uof:y坐标">
<xsl:value-of select="key('rel_graphic_name',@图:标识符)/@uof:y坐标"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="number(0)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="group-x">
<xsl:value-of select="number($groupx + $this-group-x)"/>
</xsl:variable>
<xsl:variable name="group-y">
<xsl:value-of select="number($groupy + $this-group-y)"/>
</xsl:variable>
<xsl:call-template name="组合图形">
<xsl:with-param name="zuheliebiao" select="@图:组合列表"/>
<xsl:with-param name="groupx1" select="$group-x"/>
<xsl:with-param name="groupy1" select="$group-y"/>
</xsl:call-template>
</xsl:element>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template name="common">
<xsl:param name="groupx"/>
<xsl:param name="groupy"/>
<xsl:variable name="tuxing">
<xsl:value-of select="@图:标识符"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="key('rel_graphic_name',@图:标识符)/@uof:x坐标">
<xsl:for-each select="key('rel_graphic_name',@图:标识符)">
<xsl:if test="@uof:x坐标">
<xsl:attribute name="svg:x"><xsl:value-of select="concat(@uof:x坐标,$uofUnit)"/></xsl:attribute>
</xsl:if>
<xsl:if test="@uof:y坐标">
<xsl:attribute name="svg:y"><xsl:value-of select="concat(@uof:y坐标,$uofUnit)"/></xsl:attribute>
</xsl:if>
<xsl:variable name="tuxing1" select="@uof:图形引用"/>
<xsl:attribute name="svg:width"><xsl:value-of select="concat(@uof:宽度,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:height"><xsl:value-of select="concat(@uof:高度,$uofUnit)"/></xsl:attribute>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="zuheweizhi-x">
<xsl:value-of select="图:组合位置/@图:x坐标"/>
</xsl:variable>
<xsl:variable name="zuheweizhi-y">
<xsl:value-of select="图:组合位置/@图:y坐标"/>
</xsl:variable>
<xsl:attribute name="text:anchor-type">paragraph</xsl:attribute>
<xsl:attribute name="svg:x"><xsl:value-of select="concat(($groupx + $zuheweizhi-x),$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:y"><xsl:value-of select="concat(($groupy + $zuheweizhi-y),$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:width"><xsl:value-of select="concat(图:预定义图形/图:属性/图:宽度,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:height"><xsl:value-of select="concat(图:预定义图形/图:属性 /图:高度,$uofUnit)"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="draw:style-name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
<xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
<xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
<xsl:variable name="rotate-angle">
<xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
</xsl:variable>
<xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
</xsl:if>
<xsl:if test="图:文本内容">
<xsl:apply-templates select="图:文本内容/字:段落"/>
<xsl:apply-templates select="图:文本内容/字:文字表"/>
</xsl:if>
</xsl:template>
<xsl:template name="组合图形">
<xsl:param name="zuheliebiao"/>
<xsl:param name="groupx1"/>
<xsl:param name="groupy1"/>
<xsl:variable name="x">
<xsl:value-of select="$groupx1"/>
</xsl:variable>
<xsl:variable name="y">
<xsl:value-of select="$groupy1"/>
</xsl:variable>
<xsl:variable name="first-pictures">
<xsl:value-of select="substring-before($zuheliebiao,',')"/>
</xsl:variable>
<xsl:variable name="other-pictures">
<xsl:value-of select="substring-after($zuheliebiao,',')"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="contains($other-pictures,',')">
<xsl:call-template name="graph">
<xsl:with-param name="id" select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $first-pictures]"/>
<xsl:with-param name="groupx" select="$groupx1"/>
<xsl:with-param name="groupy" select="$groupy1"/>
</xsl:call-template>
<xsl:call-template name="组合图形">
<xsl:with-param name="zuheliebiao" select="$other-pictures"/>
<xsl:with-param name="groupx1" select="$x"/>
<xsl:with-param name="groupy1" select="$y"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="graph">
<xsl:with-param name="id" select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $first-pictures]"/>
<xsl:with-param name="groupx" select="$groupx1"/>
<xsl:with-param name="groupy" select="$groupy1"/>
</xsl:call-template>
<xsl:call-template name="graph">
<xsl:with-param name="id" select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $other-pictures]"/>
<xsl:with-param name="groupx" select="$groupx1"/>
<xsl:with-param name="groupy" select="$groupy1"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="Curve">
<xsl:param name="groupx1"/>
<xsl:param name="groupy1"/>
<xsl:element name="draw:path">
<xsl:variable name="width" select="number(图:预定义图形/图:属性/图:宽度)*1000"/>
<xsl:variable name="height" select="number(图:预定义图形/图:属性/图:高度)*1000"/>
<xsl:attribute name="svg:viewBox"><xsl:value-of select="concat('0 0 ',$width, ' ',$height)"/></xsl:attribute>
<xsl:attribute name="svg:d"><xsl:value-of select="图:预定义图形/图:关键点坐标/@图:路径"/></xsl:attribute>
<xsl:call-template name="common">
<xsl:with-param name="groupx" select="$groupx1"/>
<xsl:with-param name="groupy" select="$groupy1"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="Freeform">
<xsl:param name="groupx1"/>
<xsl:param name="groupy1"/>
<xsl:element name="draw:polygon">
<xsl:variable name="width" select="number(图:预定义图形/图:属性/图:宽度)*1000"/>
<xsl:variable name="height" select="number(图:预定义图形/图:属性/图:高度)*1000"/>
<xsl:attribute name="svg:viewBox"><xsl:value-of select="concat('0 0 ',$width, ' ',$height)"/></xsl:attribute>
<xsl:attribute name="draw:points"><xsl:call-template name="drawpoints"><xsl:with-param name="points" select="图:预定义图形/图:关键点坐标/@图:路径"/><xsl:with-param name="value"/></xsl:call-template></xsl:attribute>
<xsl:call-template name="common">
<xsl:with-param name="groupx" select="$groupx1"/>
<xsl:with-param name="groupy" select="$groupy1"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="Scribble">
<xsl:param name="groupx1"/>
<xsl:param name="groupy1"/>
<xsl:element name="draw:polyline">
<xsl:variable name="width" select="number(图:预定义图形/图:属性/图:宽度)*1000"/>
<xsl:variable name="height" select="number(图:预定义图形/图:属性/图:高度)*1000"/>
<xsl:attribute name="svg:viewBox"><xsl:value-of select="concat('0 0 ',$width, ' ',$height)"/></xsl:attribute>
<xsl:attribute name="draw:points"><xsl:call-template name="drawpoints"><xsl:with-param name="points" select="图:预定义图形/图:关键点坐标/@图:路径"/><xsl:with-param name="value"/></xsl:call-template></xsl:attribute>
<xsl:call-template name="common">
<xsl:with-param name="groupx" select="$groupx1"/>
<xsl:with-param name="groupy" select="$groupy1"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="drawpoints">
<xsl:param name="points"/>
<xsl:param name="value"/>
<xsl:variable name="frist-piont">
<xsl:value-of select="substring-before($points,'lineto')"/>
</xsl:variable>
<xsl:variable name="other-points">
<xsl:value-of select="substring-after($points,'lineto')"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="contains($other-points,'lineto')">
<xsl:variable name="x-coor">
<xsl:value-of select="substring-before($frist-piont,' ') * 1000"/>
</xsl:variable>
<xsl:variable name="y-coor">
<xsl:value-of select="substring-after($frist-piont,' ') * 1000"/>
</xsl:variable>
<xsl:variable name="all-points">
<xsl:value-of select="concat($value,$x-coor,',',$y-coor,' ')"/>
</xsl:variable>
<xsl:call-template name="drawpoints">
<xsl:with-param name="points" select="$other-points"/>
<xsl:with-param name="value" select="$all-points"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="q-x-coor">
<xsl:value-of select="substring-before($frist-piont,' ') * 1000"/>
</xsl:variable>
<xsl:variable name="q-y-coor">
<xsl:value-of select="substring-after($frist-piont,' ') * 1000"/>
</xsl:variable>
<xsl:variable name="e-x-coor">
<xsl:value-of select="substring-before($other-points,' ') * 1000"/>
</xsl:variable>
<xsl:variable name="e-y-coor">
<xsl:value-of select="substring-after($other-points,' ') * 1000"/>
</xsl:variable>
<xsl:value-of select="concat($value,$q-x-coor,',',$q-y-coor,' ',$e-x-coor,',',$e-y-coor)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="Oval">
<xsl:param name="groupx1"/>
<xsl:param name="groupy1"/>
<xsl:element name="draw:ellipse">
<xsl:call-template name="common">
<xsl:with-param name="groupx" select="$groupx1"/>
<xsl:with-param name="groupy" select="$groupy1"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="Rectangle">
<xsl:param name="groupx1"/>
<xsl:param name="groupy1"/>
<xsl:element name="draw:rect">
<xsl:call-template name="common">
<xsl:with-param name="groupx" select="$groupx1"/>
<xsl:with-param name="groupy" select="$groupy1"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="Line">
<xsl:param name="groupx1"/>
<xsl:param name="groupy1"/>
<xsl:element name="draw:line">
<xsl:variable name="tuxing1" select="@图:标识符"/>
<xsl:choose>
<xsl:when test="key('rel_graphic_name',@图:标识符)">
<xsl:for-each select="key('rel_graphic_name',@图:标识符)">
<xsl:attribute name="svg:x1"><xsl:value-of select="concat(@uof:x坐标,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:y1"><xsl:value-of select="concat(@uof:y坐标,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:x2"><xsl:value-of select="concat((number(@uof:x坐标) + number(@uof:宽度)),$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:y2"><xsl:value-of select="concat((number(@uof:y坐标) + number(@uof:高度)),$uofUnit)"/></xsl:attribute>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="zuheweizhi-x">
<xsl:value-of select="图:组合位置/@图:x坐标"/>
</xsl:variable>
<xsl:variable name="zuheweizhi-y">
<xsl:value-of select="图:组合位置/@图:y坐标"/>
</xsl:variable>
<xsl:variable name="hex">
<xsl:value-of select="concat(number($groupx1 + $zuheweizhi-x),$uofUnit)"/>
</xsl:variable>
<xsl:variable name="hey">
<xsl:value-of select="concat(number($groupy1 + $zuheweizhi-y),$uofUnit)"/>
</xsl:variable>
<xsl:attribute name="svg:x1"><xsl:value-of select="$hex"/></xsl:attribute>
<xsl:attribute name="svg:y1"><xsl:value-of select="$hey"/></xsl:attribute>
<xsl:attribute name="svg:x2"><xsl:value-of select="concat(($hex + 图:预定义图形/图:属性/图:宽度),$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:y2"><xsl:value-of select="concat(($hey + 图:预定义图形/图:属性/图:高度),$uofUnit)"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="text:anchor-type">paragraph</xsl:attribute>
<xsl:attribute name="draw:style-name"><xsl:value-of select="$tuxing1"/></xsl:attribute>
<xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
<xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
<xsl:variable name="rotate-angle">
<xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
</xsl:variable>
<xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
</xsl:if>
<xsl:if test="图:文本内容">
<xsl:apply-templates select="图:文本内容/字:段落"/>
<xsl:apply-templates select="图:文本内容/字:文字表"/>
</xsl:if>
</xsl:element>
</xsl:template>
<!--Redoffice comment liliang end 06.02.15-->
<xsl:template match="表:单元格" mode="skip">
<xsl:param name="condition-pos-str"/>
<xsl:param name="col-pos-max"/>
<xsl:param name="col-pos-before"/>
<xsl:param name="row-pos"/>
<xsl:variable name="next-cell" select="following-sibling::表:单元格[1]"/>
<xsl:variable name="cell-is-repeatable" select="not($next-cell/*) and not($next-cell/text()) and (@表:式样引用 = $next-cell/@表:式样引用) and not($next-cell/@表:列号)"/>
<xsl:choose>
<xsl:when test="$cell-is-repeatable">
<xsl:apply-templates select="$next-cell" mode="skip">
<xsl:with-param name="row-pos" select="$row-pos"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="col-pos-max" select="$col-pos-max"/>
<xsl:with-param name="col-pos-before" select="$col-pos-before + 1"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$next-cell">
<xsl:apply-templates select="$next-cell" mode="selected">
<xsl:with-param name="row-pos" select="$row-pos"/>
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="col-pos-max" select="$col-pos-max"/>
<xsl:with-param name="col-pos-before" select="$col-pos-before +1"/>
</xsl:apply-templates>
<!--chengxz0925 no otherwise ,some content cells missed -->
</xsl:if>
<!--chengxz 060418 add if sentence-->
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--xsl:template name="create-table-cell-attributes"></xsl:template>
<xsl:template name="create-table-cell-content"></xsl:template>
<xsl:template name="create-data-content"></xsl:template>
<xsl:template name="get-condition-dependent-cell-attributes"></xsl:template-->
<xsl:template name="create-table-cell-attributes">
<xsl:param name="condition-pos-str"/>
<xsl:param name="col-pos-max"/>
<xsl:param name="col-pos"/>
<xsl:param name="row-pos"/>
<xsl:choose>
<xsl:when test="$condition-pos-str">
<xsl:call-template name="get-condition-dependent-cell-attributes">
<xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
<xsl:with-param name="current-pos-str" select="concat('R',$row-pos,'C',$col-pos,',')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:style-name"><xsl:choose><xsl:when test="@表:式样引用"><xsl:value-of select="@表:式样引用"/></xsl:when><xsl:when test="../@表:式样引用 and ../@表:式样引用 != ''"><xsl:value-of select="../@表:式样引用"/></xsl:when><xsl:otherwise><xsl:value-of select="'Default'"/></xsl:otherwise></xsl:choose></xsl:attribute>
<!--chengxiuzhi-->
</xsl:otherwise>
</xsl:choose>
<xsl:if test="@表:合并列数 or @表:合并行数">
<xsl:choose>
<xsl:when test="@表:合并列数">
<xsl:attribute name="table:number-columns-spanned"><xsl:value-of select="@表:合并列数 + 1"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:number-columns-spanned">1</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="@表:合并行数">
<xsl:attribute name="table:number-rows-spanned"><xsl:value-of select="@表:合并行数+1"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:number-rows-spanned">1</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="表:数据">
<xsl:if test="表:数据/表:公式">
<xsl:variable name="calc-formula">
<xsl:call-template name="translate-expression">
<xsl:with-param name="cell-row-pos" select="$row-pos"/>
<xsl:with-param name="cell-column-pos" select="$col-pos"/>
<xsl:with-param name="expression" select="表:数据/表:公式"/>
<xsl:with-param name="return-value" select="''"/>
</xsl:call-template>
</xsl:variable>
<xsl:attribute name="table:formula"><xsl:value-of select="$calc-formula"/></xsl:attribute>
</xsl:if>
<!--RedOffice Comment from Zengjh:UOF0020 2006-04-17 Based on Original-->
<xsl:variable name="table-stylename" select="@表:式样引用"/>
<xsl:variable name="data-format">
<xsl:for-each select="/uof:UOF/uof:式样集/uof:单元格式样">
<xsl:if test="$table-stylename = ./@ 表:标识符">
<xsl:value-of select="表:数字格式/@表:分类名称"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="data-formatcode">
<xsl:for-each select="/uof:UOF/uof:式样集/uof:单元格式样">
<xsl:if test="$table-stylename= ./@表:标识符">
<xsl:value-of select="表:数字格式/@表:格式码"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:choose>
<xsl:when test="表:数据/@表:数据类型 = 'number'">
<xsl:choose>
<xsl:when test="$data-format = 'percentage' or contains( $data-formatcode, '%')">
<xsl:attribute name="office:value-type">percentage</xsl:attribute>
</xsl:when>
<xsl:when test="contains($data-format, 'currency')">
<xsl:attribute name="office:value-type">currency</xsl:attribute>
<xsl:attribute name="office:currency">CNY</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="office:value-type">float</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="office:value"><xsl:choose><xsl:when test="表:数据/@表:数据数值"><xsl:value-of select="表:数据/@表:数据数值"/></xsl:when><xsl:otherwise><xsl:value-of select="表:数据/字:句/字:文本串"/></xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:when>
<xsl:when test="表:数据/@表:数据类型 = 'date'">
<xsl:attribute name="office:value-type">date</xsl:attribute>
<xsl:attribute name="office:date-value"><xsl:value-of select="表:数据/@表:数据数值"/></xsl:attribute>
</xsl:when>
<xsl:when test="表:数据/@表:数据类型 = 'time'">
<xsl:attribute name="office:value-type">time</xsl:attribute>
<xsl:attribute name="office:time-value"><xsl:value-of select="表:数据/@表:数据数值"/></xsl:attribute>
</xsl:when>
<xsl:when test="表:数据/@表:数据类型 = 'boolean'">
<xsl:attribute name="office:value-type">boolean</xsl:attribute>
<xsl:attribute name="office:boolean-value"><xsl:choose><xsl:when test="表:数据/字:句/字:文本串 = '1'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:when>
<xsl:when test="表:数据/@表:数据类型 = 'text'">
<xsl:attribute name="office:value-type">string</xsl:attribute>
<xsl:attribute name="office:string-value"><xsl:value-of select="表:数据/@表:数据数值"/></xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:if>
<!-- zhangying ok and /uof:UOF/uof:/:/:-->
<xsl:if test="表:数据">
<xsl:variable name="validation-name">
<xsl:call-template name="zyvalidationtest">
<xsl:with-param name="column-num" select="$col-pos"/>
<xsl:with-param name="row-num" select="$row-pos"/>
<xsl:with-param name="table-name" select="ancestor::表:工作表/@表:名称"/>
<xsl:with-param name="validation-set" select="/uof:UOF/uof:电子表格/表:公用处理规则/表:数据有效性集/表:数据有效性"/>
<xsl:with-param name="validation-num" select="'1'"/>
</xsl:call-template>
</xsl:variable>
<xsl:if test="$validation-name!=''">
<xsl:attribute name="table:content-validation-name"><xsl:value-of select="$validation-name"/></xsl:attribute>
</xsl:if>
</xsl:if>
<!-- zhangying mod end -->
</xsl:template>
<!-- zhangying o -->
<xsl:template name="zyvalidationtest">
<xsl:param name="row-num"/>
<xsl:param name="column-num"/>
<xsl:param name="table-name"/>
<xsl:param name="validation-set"/>
<xsl:param name="validation-num"/>
<xsl:if test="$validation-set">
<xsl:variable name="zone" select="$validation-set/表:区域/text()"/>
<xsl:variable name="success">
<xsl:choose>
<xsl:when test="$table-name=substring-after(substring-before($zone,'.'),'$')">
<xsl:variable name="validation-row-left-top" select="substring-before(substring-after(substring-after(substring-after($zone,'$'),'$'),'$'),':')"/>
<xsl:variable name="validation-row-right-bottom" select="substring-after(substring-after(substring-after($zone,':$'),'$'),'$')"/>
<xsl:choose>
<xsl:when test="($row-num &gt;= $validation-row-left-top and $row-num &lt;= $validation-row-right-bottom) or $validation-row-left-top=$validation-row-right-bottom">
<xsl:variable name="validation-column-left-top">
<xsl:call-template name="translate-column-char-to-number">
<xsl:with-param name="string" select="substring-before(substring-after(substring-after($zone,'$'),'$'),'$')"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="validation-column-right-bottom">
<xsl:call-template name="translate-column-char-to-number">
<xsl:with-param name="string" select="substring-before(substring-after(substring-after($zone,':$'),'$'),'$')"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="($column-num &gt;= $validation-column-left-top) and ($column-num &lt;= $validation-column-right-bottom)">yes</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="$success='yes'">
<xsl:value-of select="concat('val',$validation-num)"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="zyvalidationtest">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="row-num" select="$row-num"/>
<xsl:with-param name="column-num" select="$column-num"/>
<xsl:with-param name="validation-set" select="$validation-set[position()!=1]"/>
<xsl:with-param name="validation-num" select="$validation-num + 1"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<!--zhangying mod end -->
<xsl:template name="create-table-cell-content">
<xsl:param name="condition-pos-str"/>
<xsl:param name="col-pos-max"/>
<xsl:param name="col-pos"/>
<xsl:param name="row-pos"/>
<!--Redoffice comment liliang SC0011 06.02.15 -->
<!---->
<xsl:apply-templates select="uof:锚点"/>
<!--Redoffice comment liliang end 06.02.15 -->
<xsl:apply-templates select="表:批注" mode="body"/>
<!--RedOffice Comment from Zengjh:UOF0020 2006-04-26 charts-->
<xsl:apply-templates select="表:图表"/>
<xsl:if test="表:数据/字:句">
<text:p>
<xsl:call-template name="create-data-content">
<xsl:with-param name="style-id" select="../../@表:式样引用"/>
</xsl:call-template>
</text:p>
</xsl:if>
<!--chengxz0701-->
</xsl:template>
<xsl:template name="create-data-content">
<xsl:param name="style-id" select="@表:式样引用"/>
<xsl:variable name="html-children" select="表:式样引用/descendant-or-self::*[namespace-uri()='http://www.w3.org/TR/REC-html40'][string-length(text()) != 0]"/>
<xsl:choose>
<xsl:when test="$html-children and $html-children != ''">
<xsl:for-each select="$html-children">
<text:span text:style-name="{concat($style-id, 'T', count(preceding::表:数据/字:句/字:文本串[child::html:*]), '_', position())}">
<xsl:copy-of select="text()"/>
</text:span>
</xsl:for-each>
</xsl:when>
<xsl:when test="@表:超链接引用">
<text:a xlink:href="{@表:超链接引用}">
<xsl:value-of select="表:数据/字:句/字:文本串"/>
</text:a>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="表:数据/字:句">
<xsl:choose>
<xsl:when test="name(descendant::*[1])='字:句属性'">
<text:span>
<xsl:attribute name="text:style-name"><xsl:value-of select="descendant::*[1]/@字:式样引用"/></xsl:attribute>
<xsl:value-of select="./字:文本串"/>
</text:span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="./字:文本串"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="create-comment-data-content">
<xsl:param name="style-id" select="@表:式样引用"/>
<xsl:variable name="html-children" select="表:式样引用/descendant-or-self::*[namespace-uri()='http://www.w3.org/TR/REC-html40'][string-length(text()) != 0]"/>
<xsl:choose>
<xsl:when test="$html-children and $html-children != ''">
<xsl:for-each select="$html-children">
<text:span text:style-name="{concat($style-id, 'T', count(preceding::图:文本内容/字:段落/字:句/字:文本串[child::html:*]), '_', position())}">
<xsl:copy-of select="text()"/>
</text:span>
</xsl:for-each>
</xsl:when>
<xsl:when test="@表:超链接引用">
<text:a xlink:href="{@表:超链接引用}">
<xsl:value-of select="图:文本内容/字:段落/字:句/字:文本串"/>
</text:a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="图:文本内容/字:段落/字:句/字:文本串"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="get-condition-dependent-cell-attributes">
<xsl:param name="condition-pos-str"/>
<xsl:param name="current-pos-str"/>
<xsl:variable name="temp-str">
<xsl:call-template name="condition-str">
<xsl:with-param name="param-str" select="substring-before($condition-pos-str,$current-pos-str)"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="style-name">
<xsl:choose>
<xsl:when test="contains($condition-pos-str, $current-pos-str) and starts-with($temp-str, 'c')">
<xsl:value-of select="concat('ce', substring-after($temp-str, 'c'))"/>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="@表:式样引用">
<xsl:value-of select="@表:式样引用"/>
</xsl:when>
<xsl:when test="../@表:式样引用">
<xsl:value-of select="../@表:式样引用"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'Default'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="not( contains($style-name, 'Default'))">
<xsl:choose>
<xsl:when test="starts-with($style-name, 'val')">
<xsl:attribute name="table:content-validation-name"><xsl:value-of select="$style-name"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:style-name"><xsl:value-of select="$style-name"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="contains($style-name, 'Default')">
<xsl:variable name="style-nametemp">
<xsl:choose>
<xsl:when test="@表:式样引用">
<xsl:value-of select="@表:式样引用"/>
</xsl:when>
<xsl:when test="../@表:式样引用">
<xsl:value-of select="../@表:式样引用"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'Default'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:attribute name="table:style-name"><xsl:value-of select="$style-nametemp"/></xsl:attribute>
<!--xsl:attribute name="style:data-style-name"><xsl:value-of select="N104" /></xsl:attribute-->
</xsl:if>
<!--chengxz-->
<xsl:if test="contains($condition-pos-str, $current-pos-str)">
<xsl:choose>
<xsl:when test="starts-with($temp-str, 'v')">
<xsl:attribute name="table:content-validation-name"><xsl:value-of select="concat('val', substring-after($temp-str, 'v'))"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="after-str" select="substring-after($condition-pos-str, $current-pos-str)"/>
<xsl:if test="contains( $after-str, $current-pos-str)">
<xsl:variable name="temp-str-2">
<xsl:call-template name="condition-str">
<xsl:with-param name="param-str" select="substring-before( $after-str,$current-pos-str)"/>
</xsl:call-template>
</xsl:variable>
<xsl:if test="starts-with( $temp-str-2, 'v')">
<xsl:attribute name="table:content-validation-name"><xsl:value-of select="concat('val', substring-after($temp-str-2, 'v'))"/></xsl:attribute>
</xsl:if>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<xsl:template match="表:工作表内容">
<xsl:variable name="default-column-width">
<xsl:choose>
<xsl:when test="@表:缺省列宽">
<xsl:call-template name="convert2cm">
<xsl:with-param name="value" select="concat(@表:缺省列宽,'pt')"/>
</xsl:call-template>
<xsl:text>cm</xsl:text>
</xsl:when>
<xsl:otherwise>2.096cm</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="table-pos">
<xsl:value-of select="count(../preceding-sibling::表:工作表)+1"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="表:列">
<xsl:call-template name="get-column-style-name">
<xsl:with-param name="finishedColumns" select="0"/>
<xsl:with-param name="columnCount" select="count(./表:列)"/>
<xsl:with-param name="currentCount" select="1"/>
<xsl:with-param name="table-pos" select="$table-pos"/>
<xsl:with-param name="default-column-width" select="$default-column-width"/>
</xsl:call-template>
</xsl:when>
</xsl:choose>
<xsl:if test="../表:分页符集/表:分页符[@表:列号]">
<style:style style:name="{concat('cob',$table-pos)}" style:family="table-column">
<xsl:element name="style:table-column-properties">
<xsl:attribute name="style:column-width"><xsl:value-of select="$default-column-width"/></xsl:attribute>
<xsl:attribute name="fo:break-before">page</xsl:attribute>
</xsl:element>
</style:style>
</xsl:if>
<xsl:variable name="default-row-height">
<xsl:choose>
<xsl:when test="@表:缺省行高">
<xsl:call-template name="convert2cm">
<xsl:with-param name="value" select="concat(@表:缺省行高,'pt')"/>
</xsl:call-template>
<xsl:text>cm</xsl:text>
</xsl:when>
<xsl:otherwise>0.503cm</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<style:style style:family="table-row" style:name="{concat('ro', $table-pos)}">
<style:table-row-properties style:row-height="{$default-row-height}" style:use-optimal-row-height="false"/>
</style:style>
<xsl:if test="表:行">
<xsl:call-template name="get-row-style-name">
<xsl:with-param name="lastrowpos" select="0"/>
<xsl:with-param name="row-count" select="count(./表:行)"/>
<xsl:with-param name="currentRow" select="1"/>
<xsl:with-param name="table-pos" select="$table-pos"/>
<xsl:with-param name="default-row-height" select="$default-row-height"/>
</xsl:call-template>
</xsl:if>
<!--RedOffice Comment from Zengjh:UOF0020 2006-06-11 charts-->
<xsl:for-each select="//表:图表">
<xsl:variable name="chart-current">
<xsl:number level="any" count="表:图表" format="1"/>
</xsl:variable>
<style:style style:family="graphics" style:name="{concat('chart', $chart-current)}">
<style:graphic-properties>
<xsl:choose>
<xsl:when test="@表:随动方式='none'">
<xsl:attribute name="draw:move-protect">true</xsl:attribute>
<xsl:attribute name="draw:size-protect">true</xsl:attribute>
</xsl:when>
<xsl:when test="@表:随动方式='move'">
<xsl:attribute name="draw:size-protect">true</xsl:attribute>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</style:graphic-properties>
</style:style>
</xsl:for-each>
<!--RedOffice comment (Zengjh) end charts-->
<xsl:if test="../表:分页符集/表:分页符[@行号]">
<style:style style:name="{concat('rob',$table-pos)}" style:family="table-row">
<xsl:element name="style:table-row-properties">
<xsl:attribute name="style:row-height"><xsl:value-of select="$default-row-height"/></xsl:attribute>
<xsl:attribute name="style:use-optimal-row-height">false</xsl:attribute>
<xsl:attribute name="fo:break-before">page</xsl:attribute>
</xsl:element>
</style:style>
</xsl:if>
<xsl:element name="style:style">
<xsl:attribute name="style:name"><xsl:value-of select="concat( 'ta', $table-pos)"/></xsl:attribute>
<xsl:attribute name="style:family">table</xsl:attribute>
<xsl:attribute name="style:master-page-name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat( 'TAB_',../@表:名称)"/></xsl:call-template></xsl:attribute>
<xsl:element name="style:properties">
<xsl:choose>
<xsl:when test="../@表:隐藏 = 'true'">
<xsl:attribute name="table:display">false</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="table:display">true</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template name="get-column-style-name">
<xsl:param name="finishedColumns"/>
<xsl:param name="columnCount"/>
<xsl:param name="currentCount"/>
<xsl:param name="table-pos"/>
<xsl:param name="default-column-width"/>
<xsl:if test="$currentCount &lt; ($columnCount + 1)">
<xsl:variable name="span-value">
<xsl:choose>
<xsl:when test="./表:列[position() = $currentCount]/@表:跨度">
<xsl:value-of select="./表:跨度[position() = $currentCount]/@表:跨度 + 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="0"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="current-index">
<xsl:choose>
<xsl:when test="./表:列[position() = $currentCount]/@表:列号">
<xsl:value-of select="./表:列[position() = $currentCount]/@表:列号 - 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$finishedColumns"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="column-break">
<xsl:choose>
<xsl:when test="$span-value = 0">
<xsl:if test="../表:分页符集/表:分页符/表:列 = $current-index">
<xsl:value-of select="1"/>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:if test="../表:分页符集/表:分页符[(@表:列号 &gt; $finishedColumns) and (@表:列号 &lt; ($finishedColumns + $span-value))]">
<xsl:value-of select="1"/>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$column-break = 1">
<xsl:element name="style:style">
<xsl:attribute name="style:name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat('cob', $table-pos, '-',$currentCount)"/></xsl:call-template></xsl:attribute>
<xsl:attribute name="style:family">table-column</xsl:attribute>
<xsl:element name="style:table-column-properties">
<xsl:choose>
<xsl:when test="./表:列[position() = $currentCount]/@表:列宽">
<xsl:attribute name="style:column-width"><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat(./表:列[position() = $currentCount]/@表:列宽,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style:column-width"><xsl:value-of select="$default-column-width"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="./表:列[position() = $currentCount]/@表:列宽 &gt; 0">
<xsl:attribute name="style:use-optimal-column-width">false</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style:use-optimal-column-width">true</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="fo:break-before">page</xsl:attribute>
</xsl:element>
</xsl:element>
</xsl:if>
<style:style style:name="{concat('co', $table-pos, '-',$currentCount)}" style:family="table-column">
<xsl:element name="style:table-column-properties">
<xsl:choose>
<xsl:when test="./表:列[position() = $currentCount]/@表:列宽">
<xsl:attribute name="style:column-width"><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat(./表:列[position() = $currentCount]/@表:列宽,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style:column-width"><xsl:value-of select="$default-column-width"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="fo:break-before">auto</xsl:attribute>
</xsl:element>
</style:style>
<xsl:if test="$currentCount &lt; $columnCount">
<xsl:call-template name="get-column-style-name">
<xsl:with-param name="finishedColumns">
<xsl:choose>
<xsl:when test="./表:列[position() = $currentCount]/@表:列号">
<xsl:choose>
<xsl:when test="./表:列[position() = $currentCount]/@表:跨度">
<xsl:value-of select="./表:列[position() = $currentCount]/@表:列宽 + ./表:列[position() = $currentCount]/@表:跨度"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="./表:列[position() = $currentCount]/@表:列号"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="./表:列[position() = $currentCount]/@表:跨度">
<xsl:value-of select="$finishedColumns + ./表:列[position() = $currentCount]/@表:跨度 + 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$finishedColumns + 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
<xsl:with-param name="columnCount" select="$columnCount"/>
<xsl:with-param name="currentCount" select="$currentCount + 1"/>
<xsl:with-param name="table-pos" select="$table-pos"/>
<xsl:with-param name="default-column-width" select="$default-column-width"/>
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:template>
<xsl:template name="get-row-style-name">
<xsl:param name="lastrowpos"/>
<xsl:param name="row-count"/>
<xsl:param name="currentRow"/>
<xsl:param name="table-pos"/>
<xsl:param name="default-row-height"/>
<xsl:if test="$currentRow &lt; ($row-count + 1)">
<xsl:variable name="span-value">
<xsl:choose>
<xsl:when test="./表:行[position() = $currentRow]/@表:行号">
<xsl:choose>
<xsl:when test="./表:行[position() = $currentRow]/@表:跨度">
<xsl:value-of select="./表:行[position() = $currentRow]/@表:行号 - $lastrowpos+ ./表:行[position() = $currentRow]/@表:跨度"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="0"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="./表:行[position() = $currentRow]/@表:跨度">
<xsl:value-of select="./表:行[position() = $currentRow]/@表:跨度 + 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="0"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="current-index">
<xsl:choose>
<xsl:when test="./表:行[position() = $currentRow]/@表:行号">
<xsl:value-of select="./表:行[position() = $currentRow]/@表:行号 - 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$lastrowpos"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="row-break">
<xsl:choose>
<xsl:when test="$span-value = 0">
<xsl:if test="../表:分页符集/表:分页符/@表:行号 = $current-index">
<xsl:value-of select="1"/>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:if test="../表:分页符集/表:分页符[(@表:行号 &gt; $lastrowpos) and (@表:行号 &lt; ($lastrowpos + $span-value))]">
<xsl:value-of select="1"/>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$row-break = 1">
<style:style style:name="{concat('rob', $table-pos, '-',$currentRow)}" style:family="table-row">
<xsl:element name="style:table-row-properties">
<xsl:choose>
<xsl:when test="./表:行[position() = $currentRow]/@表:行高">
<xsl:attribute name="style:row-height"><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat(./表:行[position() = $currentRow]/@表:行高,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style:row-height"><xsl:value-of select="$default-row-height"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="./表:行[position() = $currentRow]/@表:行高 &gt; 0">
<xsl:attribute name="style:use-optimal-row-height">false</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style:use-optimal-row-height">true</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="fo:break-before">page</xsl:attribute>
</xsl:element>
</style:style>
</xsl:if>
<style:style style:name="{concat('ro', $table-pos, '-',$currentRow)}" style:family="table-row">
<xsl:element name="style:table-row-properties">
<xsl:choose>
<xsl:when test="./表:行[position() = $currentRow]/@表:行高">
<xsl:attribute name="style:row-height"><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat(./表:行[position() = $currentRow]/@表:行高,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style:row-height"><xsl:value-of select="$default-row-height"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="style:use-optimal-row-height">true</xsl:attribute>
<xsl:choose>
<xsl:when test="./表:行[position() = $currentRow]/@表:行高 &gt; 0">
<xsl:attribute name="style:use-optimal-row-height">false</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style:use-optimal-row-height">true</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="fo:break-before">auto</xsl:attribute>
</xsl:element>
</style:style>
<xsl:if test="$currentRow &lt; $row-count">
<xsl:call-template name="get-row-style-name">
<xsl:with-param name="lastrowpos">
<xsl:choose>
<xsl:when test="./表:行[position() = $currentRow]/@表:行号">
<xsl:choose>
<xsl:when test="./表:行[position() = $currentRow]/@表:跨度">
<xsl:value-of select="./表:行[position() = $currentRow]/@表:行号 + ./表:行[position() = $currentRow]/@表:跨度"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="./表:行[position() = $currentRow]/@表:行号"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="./表:行[position() = $currentRow]/@表:跨度">
<xsl:value-of select="$lastrowpos + ./表:行[position() = $currentRow]/@表:跨度 + 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$lastrowpos + 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
<xsl:with-param name="row-count" select="$row-count"/>
<xsl:with-param name="currentRow" select="$currentRow + 1"/>
<xsl:with-param name="table-pos" select="$table-pos"/>
<xsl:with-param name="default-row-height" select="$default-row-height"/>
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:template>
<xsl:template name="encode-as-nc-name">
<xsl:param name="string"/>
<xsl:value-of select="translate($string, '. %()/\+', '')"/>
</xsl:template>
<xsl:key match="/uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/表:行/表:单元格" name="cells" use="@表:式样引用"/>
<xsl:template match="表:数字格式">
<xsl:variable name="unit-count" select="string-length(@表:格式码) - string-length(translate(@表:格式码,';','')) + 1"/>
<xsl:variable name="style-id" select="../@表:标识符"/>
<xsl:variable name="number-format-name">
<xsl:choose>
<xsl:when test="@表:分类名称='fraction' or @表:分类名称='scientific'">number</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@表:分类名称"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="process-number-format">
<xsl:with-param name="number-format-name" select="$number-format-name"/>
<xsl:with-param name="number-format-unit" select="@表:格式码"/>
<xsl:with-param name="style-id" select="concat($style-id,'F')"/>
<xsl:with-param name="format-type" select="key('cells', $style-id)/表:数据/@表:数据类型"/>
<xsl:with-param name="total-unit" select="$unit-count"/>
<xsl:with-param name="current-unit" select="0"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="process-number-format">
<xsl:param name="number-format-name"/>
<xsl:param name="number-format-unit"/>
<xsl:param name="style-id"/>
<xsl:param name="format-type"/>
<xsl:param name="total-unit"/>
<xsl:param name="current-unit"/>
<xsl:choose>
<xsl:when test="$current-unit &lt; ($total-unit -1)">
<xsl:variable name="style-name">
<xsl:choose>
<xsl:when test="contains(substring-before($number-format-unit,';'),'[$')">currency</xsl:when>
<xsl:when test="contains(substring-before($number-format-unit,';'),'%')">percentage</xsl:when>
<xsl:otherwise>number</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:element name="{concat('number:',$style-name,'-style')}">
<xsl:attribute name="style:name"><xsl:value-of select="concat( $style-id, 'P',$current-unit)"/></xsl:attribute>
<xsl:attribute name="style:volatile">true</xsl:attribute>
<xsl:call-template name="general-number">
<xsl:with-param name="number-format-unit" select="substring-before($number-format-unit,';')"/>
</xsl:call-template>
</xsl:element>
<xsl:call-template name="process-number-format">
<xsl:with-param name="number-format-name" select="$number-format-name"/>
<xsl:with-param name="number-format-unit" select="substring-after($number-format-unit,';')"/>
<xsl:with-param name="style-id" select="$style-id"/>
<xsl:with-param name="format-type" select="$format-type"/>
<xsl:with-param name="total-unit" select="$total-unit"/>
<xsl:with-param name="current-unit" select="$current-unit +1"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:element name="{concat('number:',$number-format-name,'-style')}">
<xsl:attribute name="style:name"><xsl:value-of select="$style-id"/></xsl:attribute>
<xsl:call-template name="element-attribute">
<xsl:with-param name="number-format-unit" select="string($number-format-unit)"/>
</xsl:call-template>
<xsl:call-template name="general-number">
<xsl:with-param name="number-format-unit" select="string($number-format-unit)"/>
</xsl:call-template>
<xsl:call-template name="style-map">
<xsl:with-param name="number-format-name" select="@表:分类名称"/>
<xsl:with-param name="number-format-unit" select="@表:格式码"/>
<xsl:with-param name="style-id" select="$style-id"/>
<xsl:with-param name="format-type" select="$format-type"/>
<xsl:with-param name="total-unit" select="$total-unit"/>
<xsl:with-param name="current-unit" select="0"/>
</xsl:call-template>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="style-map">
<xsl:param name="number-format-name"/>
<xsl:param name="number-format-unit"/>
<xsl:param name="style-id"/>
<xsl:param name="format-type"/>
<xsl:param name="total-unit"/>
<xsl:param name="current-unit"/>
<xsl:if test="$current-unit &lt; ($total-unit -1)">
<xsl:variable name="stylecondition" select="substring-after(substring-before($number-format-unit,']'),'[')"/>
<style:map style:condition="{$stylecondition}" style:apply-style-name="{concat( $style-id, 'P',$current-unit)}"/>
<xsl:call-template name="style-map">
<xsl:with-param name="number-format-name" select="$number-format-name"/>
<xsl:with-param name="number-format-unit" select="substring-after($number-format-unit,';')"/>
<xsl:with-param name="style-id" select="$style-id"/>
<xsl:with-param name="format-type" select="$format-type"/>
<xsl:with-param name="total-unit" select="$total-unit"/>
<xsl:with-param name="current-unit" select="$current-unit +1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="general-number">
<xsl:param name="number-format-unit"/>
<xsl:call-template name="number-format-color">
<xsl:with-param name="number-format-unit" select="$number-format-unit"/>
</xsl:call-template>
<xsl:call-template name="number-format-currency">
<xsl:with-param name="number-format-unit" select="$number-format-unit"/>
</xsl:call-template>
<xsl:choose>
<xsl:when test="starts-with($number-format-unit,'&quot;')">
<number:text>
<xsl:value-of select="substring-before(substring-after($number-format-unit,'&quot;'),'&quot;')"/>
</number:text>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'@')">
<number:text-content/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'-') or starts-with($number-format-unit,'$') or starts-with($number-format-unit,'¥')">
<number:text>
<xsl:value-of select="substring($number-format-unit,1,1)"/>
</number:text>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'YYYY')">
<number:year number:style="long"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'YY')">
<number:year number:style="rolong"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'MMMM')">
<number:month number:style="long" number:textual="true"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'MMM')">
<number:month number:style="rolong" number:textual="true"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'DD')">
<number:day number:style="long"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'D')">
<number:day number:style="rolong"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[HH]')">
<number:hours number:style="long"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'HH')">
<number:hours number:style="long"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'H')">
<number:hours/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'SS.00')">
<number:seconds number:style="long" number:decimal-places="2"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'SS')">
<number:seconds number:style="long"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'S')">
<number:seconds/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'AM/PM')">
<number:am-pm/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'NNNN')">
<number:day-of-week number:style="long"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'NNN')">
<number:day-of-week/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'QQ')">
<number:quarter number:style="long"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'Q')">
<number:quarter/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'WW')">
<number:week-of-year/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'MM')">
<xsl:choose>
<xsl:when test="starts-with(substring($number-format-unit,3),'S') or (starts-with(substring($number-format-unit,3),'&quot;') and starts-with(substring-after(substring-after($number-format-unit,'&quot;'),'&quot;'),'S'))">
<number:minutes number:style="long"/>
</xsl:when>
<xsl:otherwise>
<number:month number:style="long"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'M')">
<xsl:choose>
<xsl:when test="starts-with(substring($number-format-unit,2),'S') or (starts-with(substring($number-format-unit,2),'&quot;') and starts-with(substring-after(substring-after($number-format-unit,'&quot;'),'&quot;'),'S'))">
<number:minutes/>
</xsl:when>
<xsl:otherwise>
<number:month/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'#') or starts-with($number-format-unit,'0')">
<xsl:variable name="digits-part">
<xsl:choose>
<xsl:when test="contains($number-format-unit,'&quot;')">
<xsl:value-of select="substring-before($number-format-unit,'&quot;')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$number-format-unit"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="decimal-integer-exponent-fraction">
<xsl:with-param name="digits-part" select="$digits-part"/>
</xsl:call-template>
</xsl:when>
</xsl:choose>
<xsl:variable name="unit-length">
<xsl:choose>
<xsl:when test="starts-with($number-format-unit,'[value()')">
<xsl:value-of select="string-length(substring-before($number-format-unit,']')) +2"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[NatNum')">
<xsl:value-of select="string-length(substring-before($number-format-unit,']')) +2"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[$-804]')">8</xsl:when>
<xsl:when test="starts-with($number-format-unit,'&quot;')">
<xsl:value-of select="string-length(substring-before(substring-after($number-format-unit,'&quot;'),'&quot;')) +3"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'@')">2</xsl:when>
<xsl:when test="starts-with($number-format-unit,'-') or starts-with($number-format-unit,'$') or starts-with($number-format-unit,'¥')">2</xsl:when>
<xsl:when test="starts-with($number-format-unit,'YYYY')">5</xsl:when>
<xsl:when test="starts-with($number-format-unit,'YY')">3</xsl:when>
<xsl:when test="starts-with($number-format-unit,'MMMM')">5</xsl:when>
<xsl:when test="starts-with($number-format-unit,'MMM')">4</xsl:when>
<xsl:when test="starts-with($number-format-unit,'MM')">3</xsl:when>
<xsl:when test="starts-with($number-format-unit,'M')">2</xsl:when>
<xsl:when test="starts-with($number-format-unit,'DD')">3</xsl:when>
<xsl:when test="starts-with($number-format-unit,'D')">2</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[HH]')">5</xsl:when>
<xsl:when test="starts-with($number-format-unit,'HH')">3</xsl:when>
<xsl:when test="starts-with($number-format-unit,'H')">2</xsl:when>
<xsl:when test="starts-with($number-format-unit,'SS.00')">6</xsl:when>
<xsl:when test="starts-with($number-format-unit,'SS')">3</xsl:when>
<xsl:when test="starts-with($number-format-unit,'S')">2</xsl:when>
<xsl:when test="starts-with($number-format-unit,'AM/PM')">6</xsl:when>
<xsl:when test="starts-with($number-format-unit,'NNNN')">5</xsl:when>
<xsl:when test="starts-with($number-format-unit,'NNN')">4</xsl:when>
<xsl:when test="starts-with($number-format-unit,'QQ')">3</xsl:when>
<xsl:when test="starts-with($number-format-unit,'Q')">2</xsl:when>
<xsl:when test="starts-with($number-format-unit,'WW')">3</xsl:when>
<xsl:when test="starts-with($number-format-unit,'#') or starts-with($number-format-unit,'0')">
<xsl:choose>
<xsl:when test="contains($number-format-unit,'&quot;')">
<xsl:value-of select="string-length(substring-before($number-format-unit,'&quot;')) +1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="string-length($number-format-unit) +1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$unit-length &gt;1 and $unit-length &lt;=string-length($number-format-unit)">
<xsl:call-template name="general-number">
<xsl:with-param name="number-format-unit" select="substring($number-format-unit,$unit-length)"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="decimal-integer-exponent-fraction">
<xsl:param name="digits-part"/>
<xsl:variable name="decimal-digits">
<xsl:choose>
<xsl:when test="contains($digits-part,'.')">
<xsl:choose>
<xsl:when test="contains($digits-part,' ')">
<xsl:value-of select="string-length(substring-before(substring-after($digits-part,'.'),' '))"/>
</xsl:when>
<xsl:when test="contains(substring-after($digits-part,'.'),',')">
<xsl:value-of select="string-length(substring-before(substring-after($digits-part,'.'),','))"/>
</xsl:when>
<xsl:when test="contains($digits-part,'E')">
<xsl:value-of select="string-length(substring-before(substring-after($digits-part,'.'),'E'))"/>
</xsl:when>
<xsl:when test="contains($digits-part,'e')">
<xsl:value-of select="string-length(substring-before(substring-after($digits-part,'.'),'e'))"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="string-length(substring-after($digits-part,'.'))"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="decimal-replacement">
<xsl:choose>
<xsl:when test="contains($digits-part,'.')">
<xsl:choose>
<xsl:when test="contains($digits-part,' ') and contains(substring-before(substring-after($digits-part,'.'),' '),'#')">true</xsl:when>
<xsl:when test="contains($digits-part,'E') and contains(substring-before(substring-after($digits-part,'.'),'E'),'#')">true</xsl:when>
<xsl:when test="contains($digits-part,'e') and contains(substring-before(substring-after($digits-part,'.'),'e'),'#')">true</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="contains(substring-after($digits-part,'.'),'#')">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="integer-digits">
<xsl:choose>
<xsl:when test="contains($digits-part,'.')">
<xsl:value-of select="string-length(substring-before($digits-part,'.')) - string-length(translate(substring-before($digits-part,'.'),'0',''))"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="string-length($digits-part) - string-length(translate($digits-part,'0',''))"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="factor-digits">
<xsl:call-template name="display-factor-digits">
<xsl:with-param name="digits-part" select="$digits-part"/>
<xsl:with-param name="count" select="0"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="grouping">
<xsl:choose>
<xsl:when test="(string-length($digits-part) - string-length(translate($digits-part,',',''))) &gt;$factor-digits">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="exponent-digits">
<xsl:choose>
<xsl:when test="contains($digits-part,'E')">
<xsl:value-of select="string-length(substring-after($digits-part,'E')) -1"/>
</xsl:when>
<xsl:when test="contains($digits-part,'e')">
<xsl:value-of select="string-length(substring-after($digits-part,'e')) -1"/>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="numerator-digits">
<xsl:choose>
<xsl:when test="contains($digits-part,' ')">
<xsl:value-of select="string-length(substring-before(substring-after($digits-part,' '),'/'))"/>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="denominator-digits">
<xsl:choose>
<xsl:when test="contains($digits-part,' ')">
<xsl:value-of select="string-length(substring-after(substring-after($digits-part,' '),'/'))"/>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="number-type">
<xsl:choose>
<xsl:when test="$exponent-digits &gt;0">number:scientific-number</xsl:when>
<xsl:when test="($numerator-digits &gt;0) or ($denominator-digits &gt;0)">number:fraction</xsl:when>
<xsl:otherwise>number:number</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:element name="{$number-type}">
<xsl:if test="$decimal-digits &gt;=0">
<xsl:attribute name="number:decimal-places"><xsl:value-of select="$decimal-digits"/></xsl:attribute>
</xsl:if>
<xsl:if test="$decimal-replacement='true'">
<xsl:attribute name="number:decimal-replacement"/>
</xsl:if>
<xsl:if test="$integer-digits &gt;=0">
<xsl:attribute name="number:min-integer-digits"><xsl:value-of select="$integer-digits"/></xsl:attribute>
</xsl:if>
<xsl:if test="$grouping='true'">
<xsl:attribute name="number:grouping"><xsl:value-of select="$grouping"/></xsl:attribute>
</xsl:if>
<xsl:if test="$factor-digits &gt;0">
<xsl:attribute name="number:display-factor"><xsl:choose><xsl:when test="$factor-digits=1">1000</xsl:when><xsl:when test="$factor-digits=2">1000000</xsl:when><xsl:when test="$factor-digits=3">1000000000</xsl:when><xsl:when test="$factor-digits=4">1000000000000</xsl:when><xsl:when test="$factor-digits=5">1000000000000000</xsl:when><xsl:when test="$factor-digits=6">1000000000000000000</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:if>
<xsl:if test="$exponent-digits &gt;0">
<xsl:attribute name="number:min-exponent-digits"><xsl:value-of select="$exponent-digits"/></xsl:attribute>
</xsl:if>
<xsl:if test="$numerator-digits &gt;0">
<xsl:attribute name="number:min-numerator-digits"><xsl:value-of select="$numerator-digits"/></xsl:attribute>
</xsl:if>
<xsl:if test="$denominator-digits &gt;0">
<xsl:attribute name="number:min-denominator-digits"><xsl:value-of select="$denominator-digits"/></xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:template>
<xsl:template name="number-format-color">
<xsl:param name="number-format-unit"/>
<xsl:choose>
<xsl:when test="starts-with($number-format-unit,'[Black]')">
<style:text-properties fo:color="#000000"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[Blue]')">
<style:text-properties fo:color="#0000ff"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[Cyan]')">
<style:text-properties fo:color="#00ffff"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[Green]')">
<style:text-properties fo:color="#00ff00"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[Magenta]')">
<style:text-properties fo:color="#ff00ff"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[Red]')">
<style:text-properties fo:color="#ff0000"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[White]')">
<style:text-properties fo:color="#ffffff"/>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[Yellow]')">
<style:text-properties fo:color="#ffff00"/>
</xsl:when>
</xsl:choose>
<xsl:variable name="unit-length">
<xsl:choose>
<xsl:when test="starts-with($number-format-unit,'[Black]')">8</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[Blue]')">7</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[Cyan]')">7</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[Green]')">8</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[Magenta]')">10</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[Red]')">6</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[White]')">8</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[Yellow]')">9</xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$unit-length &gt;1 and $unit-length &lt;=string-length($number-format-unit)">
<xsl:call-template name="general-number">
<xsl:with-param name="number-format-unit" select="substring($number-format-unit,$unit-length)"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="number-format-currency">
<xsl:param name="number-format-unit"/>
<xsl:choose>
<xsl:when test="starts-with($number-format-unit,'[$¥-804]')">
<number:currency-symbol number:language="zh" number:country="CN"></number:currency-symbol>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[$$-409]')">
<number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[$$-2C0A]')">
<number:currency-symbol number:language="es" number:country="AR">$</number:currency-symbol>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[$$-C0C]')">
<number:currency-symbol number:language="fr" number:country="CA">$</number:currency-symbol>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[$CNY]')">
<number:currency-symbol>CNY</number:currency-symbol>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[$AFA]')">
<number:currency-symbol>AFA</number:currency-symbol>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'CNY')">
<number:currency-symbol>CNY</number:currency-symbol>
</xsl:when>
<xsl:when test="starts-with($number-format-unit,'CCC')">
<number:currency-symbol>CCC</number:currency-symbol>
</xsl:when>
</xsl:choose>
<xsl:variable name="unit-length">
<xsl:choose>
<xsl:when test="starts-with($number-format-unit,'[$¥-804]')">9</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[$$-409]')">9</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[$$-2C0A]')">10</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[$$-C0C]')">9</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[$CNY]')">7</xsl:when>
<xsl:when test="starts-with($number-format-unit,'[$AFA]')">7</xsl:when>
<xsl:when test="starts-with($number-format-unit,'CNY')">4</xsl:when>
<xsl:when test="starts-with($number-format-unit,'CCC')">4</xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$unit-length &gt;1 and $unit-length &lt;=string-length($number-format-unit)">
<xsl:call-template name="general-number">
<xsl:with-param name="number-format-unit" select="substring($number-format-unit,$unit-length)"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="display-factor-digits">
<xsl:param name="digits-part"/>
<xsl:param name="count"/>
<xsl:choose>
<xsl:when test="not(substring($digits-part,string-length($digits-part),1) =',')">
<xsl:value-of select="$count"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="display-factor-digits">
<xsl:with-param name="digits-part" select="substring($digits-part,1,string-length($digits-part) -1)"/>
<xsl:with-param name="count" select="$count +1"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="element-attribute">
<xsl:param name="number-format-unit"/>
<xsl:if test="contains($number-format-unit,'[HH]')">
<xsl:attribute name="number:truncate-on-overflow">false</xsl:attribute>
</xsl:if>
<xsl:if test="starts-with($number-format-unit,'[NatNum1]')">
<xsl:attribute name="number:transliteration-format"></xsl:attribute>
<xsl:attribute name="number:transliteration-style">short</xsl:attribute>
</xsl:if>
<xsl:if test="starts-with($number-format-unit,'[NatNum2]')">
<xsl:attribute name="number:transliteration-format"></xsl:attribute>
<xsl:attribute name="number:transliteration-style">short</xsl:attribute>
</xsl:if>
<xsl:if test="starts-with($number-format-unit,'[NatNum3]')">
<xsl:attribute name="number:transliteration-format"></xsl:attribute>
<xsl:attribute name="number:transliteration-style">short</xsl:attribute>
</xsl:if>
<xsl:if test="starts-with($number-format-unit,'[NatNum4]')">
<xsl:attribute name="number:transliteration-format"></xsl:attribute>
<xsl:attribute name="number:transliteration-style">long</xsl:attribute>
</xsl:if>
<xsl:if test="starts-with($number-format-unit,'[NatNum5]')">
<xsl:attribute name="number:transliteration-format"></xsl:attribute>
<xsl:attribute name="number:transliteration-style">long</xsl:attribute>
</xsl:if>
<xsl:if test="starts-with($number-format-unit,'[NatNum6]')">
<xsl:attribute name="number:transliteration-format"></xsl:attribute>
<xsl:attribute name="number:transliteration-style">long</xsl:attribute>
</xsl:if>
<xsl:if test="starts-with($number-format-unit,'[NatNum7]')">
<xsl:attribute name="number:transliteration-format"></xsl:attribute>
<xsl:attribute name="number:transliteration-style">medium</xsl:attribute>
</xsl:if>
<xsl:if test="starts-with($number-format-unit,'[NatNum8]')">
<xsl:attribute name="number:transliteration-format"></xsl:attribute>
<xsl:attribute name="number:transliteration-style">medium</xsl:attribute>
</xsl:if>
<xsl:if test="starts-with($number-format-unit,'[NatNum0]')">
<xsl:attribute name="number:transliteration-format">1</xsl:attribute>
<xsl:attribute name="number:transliteration-style">short</xsl:attribute>
</xsl:if>
<xsl:if test="contains($number-format-unit,'[$-804]')">
<xsl:attribute name="number:transliteration-language">zh</xsl:attribute>
<xsl:attribute name="number:transliteration-country">CN</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:key name="pz" match="/uof:UOF/uof:对象集/图:图形" use="@图:标识符"/>
<xsl:template match="表:批注" mode="body">
<xsl:element name="office:annotation">
<xsl:if test="@表:是否显示 = 'true'">
<xsl:attribute name="office:display">true</xsl:attribute>
</xsl:if>
<xsl:attribute name="draw:style-name"><xsl:value-of select="uof:锚点/@uof:图形引用"/></xsl:attribute>
<xsl:attribute name="svg:height"><xsl:value-of select="concat(uof:锚点/@uof:高度,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:x"><xsl:value-of select="concat(uof:锚点/@uof:x坐标,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:y"><xsl:value-of select="concat(uof:锚点/@uof:y坐标,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:width"><xsl:value-of select="concat(uof:锚点/@uof:宽度,$uofUnit)"/></xsl:attribute>
<xsl:variable name="w">
<xsl:value-of select="./uof:锚点/@uof:图形引用"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="key('pz',$w)/图:文本内容/字:句/字:文本串">
<text:p>
<xsl:for-each select="key('pz',$w)/图:文本内容/字:句">
<text:span>
<xsl:if test="字:句属性/@字:式样引用">
<xsl:attribute name="text:style-name"><xsl:value-of select="字:句属性/@字:式样引用"/></xsl:attribute>
</xsl:if>
<xsl:value-of select="字:文本串"/>
</text:span>
</xsl:for-each>
</text:p>
</xsl:when>
</xsl:choose>
<!--xsl:if test="图:文本内容/字:段落/字:句/字:文本串">
<text:p>
<xsl:call-template name="create-comment-data-content">
<xsl:with-param name="style-id" select="../@表:式样引用"/>
</xsl:call-template>
</text:p>
</xsl:if-->
</xsl:element>
</xsl:template>
<xsl:template name="auto-filter-condition">
<xsl:param name="condition-set"/>
<xsl:param name="zone-left-column-num"/>
<xsl:if test="$condition-set">
<xsl:variable name="first-condition" select="$condition-set[1]"/>
<xsl:element name="table:filter-condition">
<xsl:attribute name="table:field-number"><xsl:value-of select="$first-condition/@表:列号 - $zone-left-column-num"/></xsl:attribute>
<xsl:attribute name="office:value"><xsl:choose><xsl:when test="$first-condition/表:普通"><xsl:value-of select="$first-condition/表:普通/@表:值"/></xsl:when><xsl:when test="$first-condition/表:自定义"><xsl:value-of select="$first-condition/表:自定义/表:操作条件/表:值"/></xsl:when></xsl:choose></xsl:attribute>
<xsl:variable name="operator">
<xsl:choose>
<xsl:when test="$first-condition/表:普通">
<xsl:variable name="general" select="$first-condition/表:普通/@表:类型"/>
<xsl:choose>
<xsl:when test="$general ='topitem'">top values</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="$first-condition/表:自定义">
<xsl:variable name="operator-text" select="$first-condition/表:自定义/表:操作条件/表:操作码/text()"/>
<xsl:choose>
<xsl:when test="$operator-text ='less than'">&lt;</xsl:when>
<xsl:when test="$operator-text ='greater than'">&gt;</xsl:when>
<xsl:when test="$operator-text ='equal to'">
<xsl:value-of select="'='"/>
</xsl:when>
<xsl:when test="$operator-text ='greater than or equal to'">
<xsl:value-of select="'&gt;='"/>
</xsl:when>
<xsl:when test="$operator-text ='less than or equal to'">
<xsl:value-of select="'&lt;='"/>
</xsl:when>
<xsl:when test="$operator-text ='not equal to'">
<xsl:value-of select="'!='"/>
</xsl:when>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:attribute name="table:operator"><xsl:value-of select="$operator"/></xsl:attribute>
</xsl:element>
<xsl:call-template name="auto-filter-condition">
<xsl:with-param name="condition-set" select="$condition-set[position()!=1]"/>
<xsl:with-param name="zone-left-column-num" select="$zone-left-column-num"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="translate-column-char-to-number">
<xsl:param name="string"/>
<xsl:choose>
<xsl:when test="string-length($string)=1">
<xsl:call-template name="char-to-number">
<xsl:with-param name="char" select="$string"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="tens-place">
<xsl:call-template name="char-to-number">
<xsl:with-param name="char" select="substring($string,1,1)"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="units-place">
<xsl:call-template name="char-to-number">
<xsl:with-param name="char" select="substring($string,2,1)"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$tens-place * 26 + $units-place"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="char-to-number">
<xsl:param name="char"/>
<xsl:choose>
<xsl:when test="$char='A'">1</xsl:when>
<xsl:when test="$char='B'">2</xsl:when>
<xsl:when test="$char='C'">3</xsl:when>
<xsl:when test="$char='D'">4</xsl:when>
<xsl:when test="$char='E'">5</xsl:when>
<xsl:when test="$char='F'">6</xsl:when>
<xsl:when test="$char='G'">7</xsl:when>
<xsl:when test="$char='H'">8</xsl:when>
<xsl:when test="$char='I'">9</xsl:when>
<xsl:when test="$char='J'">10</xsl:when>
<xsl:when test="$char='K'">11</xsl:when>
<xsl:when test="$char='L'">12</xsl:when>
<xsl:when test="$char='M'">13</xsl:when>
<xsl:when test="$char='N'">14</xsl:when>
<xsl:when test="$char='O'">15</xsl:when>
<xsl:when test="$char='P'">16</xsl:when>
<xsl:when test="$char='Q'">17</xsl:when>
<xsl:when test="$char='R'">18</xsl:when>
<xsl:when test="$char='S'">19</xsl:when>
<xsl:when test="$char='T'">20</xsl:when>
<xsl:when test="$char='U'">21</xsl:when>
<xsl:when test="$char='V'">22</xsl:when>
<xsl:when test="$char='W'">23</xsl:when>
<xsl:when test="$char='X'">24</xsl:when>
<xsl:when test="$char='Y'">25</xsl:when>
<xsl:when test="$char='Z'">26</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template name="translate-expression2">
<xsl:param name="expression2"/>
<xsl:choose>
<xsl:when test="contains($expression2,':')">
<xsl:variable name="column-one">
<xsl:value-of select="substring(substring-before($expression2,':'),1,1)"/>
</xsl:variable>
<xsl:variable name="row-one">
<xsl:value-of select="substring(substring-before($expression2,':'),2)"/>
</xsl:variable>
<xsl:variable name="column-two">
<xsl:value-of select="substring(substring-after($expression2,':'),1,1)"/>
</xsl:variable>
<xsl:variable name="row-two">
<xsl:value-of select="substring(substring-after($expression2,':'),2)"/>
</xsl:variable>
<xsl:variable name="column-value1">
<xsl:call-template name="character-to-column">
<xsl:with-param name="column-value" select="$column-one"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="column-value2">
<xsl:call-template name="character-to-column">
<xsl:with-param name="column-value" select="$column-two"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="concat('R',$row-one,'C',$column-value1,':','R',$row-two,'C',$column-value2)"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="column-one">
<xsl:value-of select="substring($expression2,1,1)"/>
</xsl:variable>
<xsl:variable name="row-one">
<xsl:value-of select="substring($expression2,2)"/>
</xsl:variable>
<xsl:variable name="column-value1">
<xsl:call-template name="character-to-column">
<xsl:with-param name="column-value" select="$column-one"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="concat('R',$row-one,'C',$column-value1)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="character-to-column">
<xsl:param name="column-value"/>
<xsl:choose>
<xsl:when test="$column-value= 'A'">1</xsl:when>
<xsl:when test="$column-value= 'B'">2</xsl:when>
<xsl:when test="$column-value= 'C'">3</xsl:when>
<xsl:when test="$column-value= 'D'">4</xsl:when>
<xsl:when test="$column-value= 'E'">5</xsl:when>
<xsl:when test="$column-value= 'F'">6</xsl:when>
<xsl:when test="$column-value= 'G'">7</xsl:when>
<xsl:when test="$column-value= 'H'">8</xsl:when>
<xsl:when test="$column-value= 'I'">9</xsl:when>
<xsl:when test="$column-value= 'J'">10</xsl:when>
<xsl:when test="$column-value= 'K'">11</xsl:when>
<xsl:when test="$column-value= 'L'">12</xsl:when>
<xsl:when test="$column-value= 'M'">13</xsl:when>
<xsl:when test="$column-value= 'N'">14</xsl:when>
<xsl:when test="$column-value= 'O'">15</xsl:when>
<xsl:when test="$column-value= 'P'">16</xsl:when>
<xsl:when test="$column-value= 'Q'">17</xsl:when>
<xsl:when test="$column-value= 'R'">18</xsl:when>
<xsl:when test="$column-value= 'S'">19</xsl:when>
<xsl:when test="$column-value= 'T'">20</xsl:when>
<xsl:when test="$column-value= 'U'">21</xsl:when>
<xsl:when test="$column-value= 'V'">22</xsl:when>
<xsl:when test="$column-value= 'W'">23</xsl:when>
<xsl:when test="$column-value= 'X'">24</xsl:when>
<xsl:when test="$column-value= 'Y'">25</xsl:when>
<xsl:when test="$column-value= 'Z'">26</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
<!--chenjh end 20050611-->
<xsl:template name="工作表属性">
<!--office:settings-->
<xsl:variable name="sheetprop" select="/uof:UOF/uof:电子表格/表:主体/表:工作表"/>
<config:config-item-set config:name="ooo:view-settings">
<xsl:variable name="ratio" select="15"/>
<xsl:if test="/uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/表:行/表:单元格/表:数据/字:句/字:修订开始">
<config:config-item-set config:name="TrackedChangesViewSettings">
<config:config-item config:name="ShowChanges" config:type="boolean">true</config:config-item>
<config:config-item config:name="ShowAcceptedChanges" config:type="boolean">false</config:config-item>
<config:config-item config:name="ShowRejectedChanges" config:type="boolean">false</config:config-item>
<config:config-item config:name="ShowChangesByDatetime" config:type="boolean">false</config:config-item>
<config:config-item config:name="ShowChangesByDatetimeMode" config:type="short">0</config:config-item>
<config:config-item config:name="ShowChangesByDatetimeFirstDatetime" config:type="datetime">2007-01-17T10:56:46.21</config:config-item>
<config:config-item config:name="ShowChangesByDatetimeSecondDatetime" config:type="datetime">2007-01-17T10:56:46.21</config:config-item>
<config:config-item config:name="ShowChangesByAuthor" config:type="boolean">false</config:config-item>
<config:config-item config:name="ShowChangesByAuthorName" config:type="string"/>
<config:config-item config:name="ShowChangesByComment" config:type="boolean">false</config:config-item>
<config:config-item config:name="ShowChangesByCommentText" config:type="string"/>
<config:config-item config:name="ShowChangesByRanges" config:type="boolean">false</config:config-item>
<config:config-item config:name="ShowChangesByRangesList" config:type="string"/>
</config:config-item-set>
</xsl:if>
<config:config-item-map-indexed config:name="Views">
<config:config-item-map-entry>
<config:config-item config:name="ViewId" config:type="string">View1</config:config-item>
<config:config-item-map-named config:name="Tables">
<xsl:for-each select="$sheetprop/表:工作表属性/表:视图">
<xsl:element name="config:config-item-map-entry">
<xsl:attribute name="config:name"><xsl:value-of select="ancestor::表:工作表/@表:名称"/></xsl:attribute>
<xsl:element name="config:config-item">
<xsl:attribute name="config:name">HorizontalSplitMode</xsl:attribute>
<xsl:attribute name="config:type">short</xsl:attribute>
<xsl:choose>
<xsl:when test="表:冻结 and 表:冻结/@表:列号!=0">2</xsl:when>
<xsl:when test="表:冻结 and 表:冻结/@表:列号=0">0</xsl:when>
<xsl:when test="表:拆分 and 表:拆分/@表:宽度!=0">1</xsl:when>
<xsl:when test="表:拆分 and 表:拆分/@表:宽度=0">0</xsl:when>
</xsl:choose>
</xsl:element>
<xsl:element name="config:config-item">
<xsl:attribute name="config:name">VerticalSplitMode</xsl:attribute>
<xsl:attribute name="config:type">short</xsl:attribute>
<xsl:choose>
<xsl:when test="表:冻结 and 表:冻结/@表:行号!=0">2</xsl:when>
<xsl:when test="表:冻结 and 表:冻结/@表:行号=0">0</xsl:when>
<xsl:when test="表:拆分 and 表:拆分/@表:高度!=0">1</xsl:when>
<xsl:when test="表:拆分 and 表:拆分/@表:高度=0">0</xsl:when>
</xsl:choose>
</xsl:element>
<xsl:element name="config:config-item">
<xsl:attribute name="config:name">HorizontalSplitPosition</xsl:attribute>
<xsl:attribute name="config:type">int</xsl:attribute>
<xsl:choose>
<xsl:when test="表:冻结 and 表:冻结/@表:列号=0">0</xsl:when>
<xsl:when test="表:冻结 and 表:冻结/@表:列号!=0">
<xsl:value-of select="表:冻结/@表:列号"/>
</xsl:when>
<xsl:when test="表:拆分 and 表:拆分/@表:宽度=0">0</xsl:when>
<xsl:when test="表:拆分 and 表:拆分/@表:宽度!=0">
<xsl:value-of select="表:拆分/@表:宽度"/>
</xsl:when>
</xsl:choose>
</xsl:element>
<xsl:element name="config:config-item">
<xsl:attribute name="config:name">VerticalSplitPosition</xsl:attribute>
<xsl:attribute name="config:type">int</xsl:attribute>
<xsl:choose>
<xsl:when test="表:冻结 and 表:冻结/@表:行号=0">0</xsl:when>
<xsl:when test="表:冻结 and 表:冻结/@表:行号!=0">
<xsl:value-of select="表:冻结/@表:行号"/>
</xsl:when>
<xsl:when test="表:拆分 and 表:拆分/@表:高度=0">0</xsl:when>
<xsl:when test="表:拆分 and 表:拆分/@表:高度!=0">
<xsl:value-of select="表:拆分/@表:高度"/>
</xsl:when>
</xsl:choose>
</xsl:element>
<xsl:variable name="position-top">
<xsl:choose>
<xsl:when test="$sheetprop/表:工作表属性/表:视图/表:最上行">
<xsl:value-of select="//表:工作表属性/表:视图/表:最上行"/>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="position-left">
<xsl:choose>
<xsl:when test="$sheetprop/表:工作表属性/表:视图/表:最左列">
<xsl:value-of select="$sheetprop/表:工作表属性/表:视图/表:最左列"/>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<config:config-item config:name="PositionRight" config:type="int">
<xsl:value-of select="$position-left"/>
</config:config-item>
<config:config-item config:name="PositionBottom" config:type="int">
<xsl:value-of select="$position-top"/>
</config:config-item>
</xsl:element>
</xsl:for-each>
</config:config-item-map-named>
<xsl:if test="$sheetprop/表:工作表属性/表:视图/表:当前视图">
<xsl:element name="config:config-item">
<xsl:attribute name="config:name">ShowPageBreakPreview</xsl:attribute>
<xsl:attribute name="config:type">boolean</xsl:attribute>
<xsl:choose>
<xsl:when test="$sheetprop/表:工作表属性/表:视图/表:当前视图/@表:类型='normal'">false</xsl:when>
<xsl:otherwise>true</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:if>
<xsl:if test="$sheetprop/表:工作表属性/表:视图/表:网格">
<xsl:element name="config:config-item">
<xsl:attribute name="config:name">ShowGrid</xsl:attribute>
<xsl:attribute name="config:type">boolean</xsl:attribute>
<xsl:choose>
<xsl:when test="$sheetprop/表:工作表属性/表:视图/表:网格/@表:值=1 or $sheetprop/表:工作表属性/表:视图/表:网格/@表:值='true'">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:if>
<xsl:if test="$sheetprop/表:工作表属性/表:视图/表:网格颜色">
<xsl:element name="config:config-item">
<xsl:attribute name="config:name">GridColor</xsl:attribute>
<xsl:attribute name="config:type">long</xsl:attribute>
<xsl:call-template name="transform-hex-to-decimal">
<xsl:with-param name="number" select="//表:视图/表:网格颜色/text()"/>
</xsl:call-template>
</xsl:element>
</xsl:if>
<xsl:if test="$sheetprop/表:工作表属性/表:视图/表:选中">
<xsl:element name="config:config-item">
<xsl:attribute name="config:name">ActiveTable</xsl:attribute>
<xsl:attribute name="config:type">string</xsl:attribute>
<xsl:value-of select="$sheetprop/表:工作表属性/表:视图[表:选中]/ancestor::表:工作表/@表:名称"/>
</xsl:element>
</xsl:if>
<xsl:if test="$sheetprop/表:工作表属性/表:视图/表:缩放">
<config:config-item config:name="ZoomValue" config:type="int">
<xsl:value-of select="$sheetprop/表:工作表属性/表:视图/表:缩放/text()"/>
</config:config-item>
</xsl:if>
<xsl:if test="$sheetprop/表:工作表属性/表:视图/表:分页缩放">
<config:config-item config:name="PageViewZoomValue" config:type="int">
<xsl:value-of select="$sheetprop/表:工作表属性/表:视图/表:分页缩放/text()"/>
</config:config-item>
</xsl:if>
</config:config-item-map-entry>
</config:config-item-map-indexed>
</config:config-item-set>
</xsl:template>
<xsl:template name="create-page-master">
<xsl:param name="worksheetoptions"/>
<xsl:for-each select="$worksheetoptions">
<xsl:element name="style:page-layout">
<xsl:attribute name="style:name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat( 'pm_', ../@表:名称)"/></xsl:call-template></xsl:attribute>
<xsl:element name="style:page-layout-properties">
<xsl:if test="表:页面设置/表:纸张/@uof:宽度">
<xsl:attribute name="fo:page-width"><xsl:value-of select="concat(表:页面设置/表:纸张/@uof:宽度,$uofUnit)"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:页面设置/表:纸张/@uof:高度">
<xsl:attribute name="fo:page-height"><xsl:value-of select="concat(表:页面设置/表:纸张/@uof:高度,$uofUnit)"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:页面设置/表:纸张方向">
<xsl:attribute name="style:print-orientation"><xsl:value-of select="表:页面设置/表:纸张方向"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:页面设置/表:缩放">
<xsl:attribute name="style:scale-to"><xsl:value-of select="concat(表:页面设置/表:缩放,'%')"/></xsl:attribute>
</xsl:if>
<xsl:if test="/uof:UOF/uof:电子表格/表:主体/表:工作表/@表:背景">
<xsl:attribute name="fo:background-color"><xsl:value-of select="/uof:UOF/uof:电子表格/表:主体/表:工作表/@表:背景"/></xsl:attribute>
</xsl:if>
<xsl:attribute name="style:first-page-number">continue</xsl:attribute>
<xsl:if test="表:页面设置/表:页边距">
<xsl:attribute name="fo:margin-top"><xsl:value-of select="concat(表:页面设置/表:页边距/@uof:上,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="fo:margin-bottom"><xsl:value-of select="concat(表:页面设置/表:页边距/@uof:下,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="fo:margin-left"><xsl:value-of select="concat(表:页面设置/表:页边距/@uof:左,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="fo:margin-right"><xsl:value-of select="concat(表:页面设置/表:页边距/@uof:右,$uofUnit)"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:页面设置/表:打印/@表:先列后行='true'">
<xsl:attribute name="style:print-page-order">ltr</xsl:attribute>
</xsl:if>
<xsl:if test="表:页面设置/表:垂直对齐/@表:对齐方式">
<xsl:attribute name="style:table-centering">vertical</xsl:attribute>
</xsl:if>
<xsl:if test="表:页面设置/表:水平对齐/@表:对齐方式">
<xsl:attribute name="style:table-centering">horizontal</xsl:attribute>
</xsl:if>
</xsl:element>
<xsl:element name="style:header-style">
<xsl:element name="style:header-footer-properties">
<xsl:attribute name="fo:min-height">0.75cm</xsl:attribute>
<xsl:choose>
<xsl:when test="表:页面设置/表:页眉页脚/@uof:边距">
<xsl:attribute name="fo:margin-bottom"><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat(表:页面设置/表:页眉页脚/@uof:边距,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="fo:margin-bottom">0.25cm</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:element>
<xsl:element name="style:footer-style">
<xsl:element name="style:header-footer-properties">
<xsl:attribute name="fo:min-height">0.75cm</xsl:attribute>
<xsl:choose>
<xsl:when test="表:页面设置/表:页眉页脚/@uof:边距">
<xsl:attribute name="fo:margin-top"><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat(表:页面设置/表:页眉页脚/@uof:边距,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="fo:margin-top">0.25cm</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:template>
<xsl:template match="字:文本串">
<xsl:value-of select="text()"/>
</xsl:template>
<xsl:template match="字:换行符">
<xsl:element name="text:line-break"/>
</xsl:template>
<xsl:template match="字:制表符">
<xsl:element name="text:tab-stop"/>
</xsl:template>
<xsl:template match="字:区域开始">
<xsl:if test="@字:类型='hyperlink'">
<xsl:variable name="superlink" select="//uof:超级链接[@uof:标识符=current()/@字:标识符]"/>
<xsl:element name="text:a">
<xsl:attribute name="xlink:href"><xsl:value-of select="$superlink/@uof:目标"/></xsl:attribute>
<xsl:value-of select="$superlink/@uof:提示"/>
</xsl:element>
</xsl:if>
</xsl:template>
<xsl:template match="字:空格符">
<xsl:element name="text:s">
<xsl:if test="@字:个数">
<xsl:attribute name="text:c"><xsl:value-of select="@字:个数"/></xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:template>
<xsl:template name="create-page-header-footer-text-p">
<xsl:param name="paragragh-set"/>
<xsl:choose>
<xsl:when test="$paragragh-set">
<xsl:element name="text:p">
<xsl:for-each select="$paragragh-set[1]/字:句">
<xsl:choose>
<xsl:when test="not(字:句属性)">
<xsl:apply-templates select="字:文本串 | 字:空格符 | 字:换行符"/>
</xsl:when>
<xsl:when test="字:句属性">
<xsl:element name="text:span">
<xsl:attribute name="text:style-name"><xsl:value-of select="//uof:句式样[@字:标识符=current()/字:句属性/@字:式样引用]/@字:名称"/></xsl:attribute>
<xsl:apply-templates select="字:空格符 | 字:文本串 | 字:换行符 | 字:制表符"/>
</xsl:element>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:element>
<xsl:call-template name="create-page-header-footer-text-p">
<xsl:with-param name="paragragh-set" select="$paragragh-set[position()!=1]"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
<!--Redoffice comment lilliang SC0016 06.02.16 -->
<!---->
<xsl:template match="字:段落">
<xsl:element name="text:p">
<xsl:choose>
<xsl:when test="字:段落属性">
<xsl:attribute name="text:style-name">P<xsl:number from="/uof:UOF/uof:文字处理/字:主体" level="any" count="字:段落[字:段落属性]"/></xsl:attribute>
</xsl:when>
<xsl:when test="generate-id(ancestor::字:主体/descendant::字:段落[1]) = generate-id(.)">
<!-- create the leading paragraph style name in one section for master page style application, glu -->
<xsl:variable name="paragraph-number">
<xsl:number from="/uof:UOF/uof:文字处理/字:主体" level="any" count="字:段落[字:段落属性]"/>
</xsl:variable>
<xsl:attribute name="text:style-name">P<xsl:value-of select="number($paragraph-number)"/>_1</xsl:attribute>
</xsl:when>
<xsl:when test="not(字:段落属性) and (descendant::字:分栏符 or ancestor::字:分节/descendant::字:节属性[字:分栏/@字:栏数 &gt; 1])">
<xsl:attribute name="text:style-name">ColumnBreakPara</xsl:attribute>
</xsl:when>
<xsl:when test="字:句">
<xsl:apply-templates select="字:句/字:文本串"/>
</xsl:when>
</xsl:choose>
</xsl:element>
</xsl:template>
<!--Redoffice comment liliang end 06.02.16-->
<xsl:template name="create-master-styles">
<xsl:param name="worksheetoptions"/>
<xsl:for-each select="$worksheetoptions">
<xsl:element name="style:master-page">
<xsl:attribute name="style:name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat( 'TAB_', ../@表:名称)"/></xsl:call-template></xsl:attribute>
<!--xsl:attribute name="style:page-layout-name"-->
<xsl:attribute name="style:page-layout-name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat( 'pm_', ../@表:名称)"/></xsl:call-template></xsl:attribute>
<xsl:attribute name="style:display-name"><xsl:value-of select="concat( 'PageStyle_', ../@表:名称)"/></xsl:attribute>
<style:header>
<xsl:for-each select="表:页面设置/表:页眉页脚">
<xsl:variable name="temp" select="@表:位置"/>
<xsl:choose>
<xsl:when test="contains($temp,'header')">
<xsl:if test="字:段落">
<xsl:choose>
<xsl:when test="@表:位置='headerleft'">
<xsl:element name="style:region-left">
<xsl:call-template name="create-page-header-footer-text-p">
<xsl:with-param name="paragragh-set" select="字:段落"/>
</xsl:call-template>
</xsl:element>
</xsl:when>
<xsl:when test="@表:位置='headercenter'">
<xsl:element name="style:region-center">
<xsl:call-template name="create-page-header-footer-text-p">
<xsl:with-param name="paragragh-set" select="字:段落"/>
</xsl:call-template>
</xsl:element>
</xsl:when>
<xsl:when test="@表:位置='headerright'">
<xsl:element name="style:region-right">
<xsl:call-template name="create-page-header-footer-text-p">
<xsl:with-param name="paragragh-set" select="字:段落"/>
</xsl:call-template>
</xsl:element>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:if>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:for-each>
</style:header>
<style:footer>
<xsl:for-each select="表:页面设置/表:页眉页脚">
<xsl:variable name="temp" select="@表:位置"/>
<xsl:choose>
<xsl:when test="contains($temp,'footer')">
<xsl:if test="字:段落">
<xsl:choose>
<xsl:when test="@表:位置='footerleft'">
<xsl:element name="style:region-left">
<xsl:call-template name="create-page-header-footer-text-p">
<xsl:with-param name="paragragh-set" select="字:段落"/>
</xsl:call-template>
</xsl:element>
</xsl:when>
<xsl:when test="@表:位置='footercenter'">
<xsl:element name="style:region-center">
<xsl:call-template name="create-page-header-footer-text-p">
<xsl:with-param name="paragragh-set" select="字:段落"/>
</xsl:call-template>
</xsl:element>
</xsl:when>
<xsl:when test="@表:位置='footerright'">
<xsl:element name="style:region-right">
<xsl:call-template name="create-page-header-footer-text-p">
<xsl:with-param name="paragragh-set" select="字:段落"/>
</xsl:call-template>
</xsl:element>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:if>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:for-each>
</style:footer>
</xsl:element>
</xsl:for-each>
</xsl:template>
<!--xsl:template name="create-page-master">
</xsl:template>
<xsl:template match="表:页面设置">
</xsl:template>
<xsl:template name="create-master-styles">
</xsl:template>
<xsl:template name="表:工作表属性">
</xsl:template-->
<!--00000000000-->
<xsl:template match="uof:元数据">
<office:meta>
<xsl:if test="uof:创建应用程序">
<meta:generator>
<xsl:value-of select="uof:创建应用程序"/>
</meta:generator>
</xsl:if>
<xsl:if test="uof:标题">
<dc:title>
<xsl:value-of select="uof:标题"/>
</dc:title>
</xsl:if>
<xsl:if test="uof:摘要">
<dc:description>
<xsl:value-of select="uof:摘要"/>
</dc:description>
</xsl:if>
<xsl:if test="uof:主题">
<dc:subject>
<xsl:value-of select="uof:主题"/>
</dc:subject>
</xsl:if>
<xsl:if test="uof:作者">
<meta:initial-creator>
<xsl:value-of select="uof:作者"/>
</meta:initial-creator>
</xsl:if>
<xsl:if test="uof:创建日期">
<meta:creation-date>
<xsl:value-of select="uof:创建日期"/>
</meta:creation-date>
</xsl:if>
<xsl:if test="uof:最后作者">
<dc:creator>
<xsl:value-of select="uof:最后作者"/>
</dc:creator>
</xsl:if>
<xsl:if test="uof:编辑时间">
<meta:editing-duration>
<xsl:value-of select="uof:编辑时间"/>
</meta:editing-duration>
</xsl:if>
<dc:language/>
<meta:keyword>
<xsl:value-of select="uof:关键字集/uof:关键字"/>
</meta:keyword>
<xsl:if test="uof:编辑次数">
<meta:editing-cycles>
<xsl:value-of select="uof:编辑次数"/>
</meta:editing-cycles>
</xsl:if>
<xsl:if test="uof:分类">
<meta:user-defined meta:name="Category">
<xsl:value-of select="uof:分类"/>
</meta:user-defined>
</xsl:if>
<xsl:if test="uof:经理名称">
<meta:user-defined meta:name="Manager">
<xsl:value-of select="uof:经理名称"/>
</meta:user-defined>
</xsl:if>
<xsl:if test="uof:公司名称">
<meta:user-defined meta:name="Company">
<xsl:value-of select="uof:公司名称"/>
</meta:user-defined>
</xsl:if>
<xsl:apply-templates select="uof:用户自定义元数据集"/>
</office:meta>
</xsl:template>
<xsl:template match="uof:用户自定义元数据集">
<xsl:for-each select="uof:用户自定义元数据">
<meta:user-defined meta:name="{@uof:名称}">
<xsl:value-of select="."/>
</meta:user-defined>
</xsl:for-each>
</xsl:template>
<xsl:template name="parse-range">
<xsl:param name="range-value"/>
<xsl:param name="last"/>
<xsl:variable name="first-pit">
<xsl:choose>
<xsl:when test="contains($range-value,',')">
<xsl:value-of select="substring-before($range-value,',')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$range-value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="current">
<xsl:choose>
<xsl:when test="contains($first-pit,':')">
<xsl:variable name="R-start" select="substring-before(substring-after($first-pit,'R'),'C')"/>
<xsl:variable name="C-start" select="substring-before(substring-after($first-pit,'C'),':')"/>
<xsl:variable name="second-pit" select="substring-after($first-pit,':')"/>
<xsl:variable name="R-end" select="substring-before(substring-after($second-pit,'R'),'C')"/>
<xsl:variable name="C-end" select="substring-after($second-pit,'C')"/>
<xsl:variable name="the-str">
<xsl:call-template name="condition-rc-str">
<xsl:with-param name="r-start" select="$R-start"/>
<xsl:with-param name="r-end" select="$R-end"/>
<xsl:with-param name="c-start" select="$C-start"/>
<xsl:with-param name="c-end" select="$C-end"/>
<xsl:with-param name="last" select="''"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$the-str"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($first-pit,',')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="contains($range-value,',')">
<xsl:call-template name="parse-range">
<xsl:with-param name="range-value" select="substring-after($range-value,',')"/>
<xsl:with-param name="last" select="concat($last,$current)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($last,$current)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="condition-rc-str">
<!-- dealing the range of row\column -->
<xsl:param name="r-start"/>
<xsl:param name="r-end"/>
<xsl:param name="c-start"/>
<xsl:param name="c-end"/>
<xsl:param name="last"/>
<xsl:variable name="current">
<xsl:call-template name="condition-c-str">
<xsl:with-param name="rc-str" select="concat('R',$r-start)"/>
<xsl:with-param name="start" select="$c-start"/>
<xsl:with-param name="end" select="$c-end"/>
<xsl:with-param name="last" select="''"/>
</xsl:call-template>
</xsl:variable>
<xsl:if test="$r-start &lt; $r-end">
<xsl:call-template name="condition-rc-str">
<xsl:with-param name="r-start" select="$r-start + 1"/>
<xsl:with-param name="r-end" select="$r-end"/>
<xsl:with-param name="c-start" select="$c-start"/>
<xsl:with-param name="c-end" select="$c-end"/>
<xsl:with-param name="last" select="concat($last,$current)"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$r-start = $r-end">
<xsl:value-of select="concat($last,$current)"/>
</xsl:if>
</xsl:template>
<xsl:template name="condition-c-str">
<!-- return value for the template condition-rc-str -->
<xsl:param name="rc-str"/>
<xsl:param name="start"/>
<xsl:param name="end"/>
<xsl:param name="last"/>
<xsl:variable name="current" select="concat($rc-str,'C',$start,',')"/>
<xsl:if test="$start &lt; $end">
<xsl:call-template name="condition-c-str">
<xsl:with-param name="rc-str" select="$rc-str"/>
<xsl:with-param name="start" select="$start + 1"/>
<xsl:with-param name="end" select="$end"/>
<xsl:with-param name="last" select="concat($last,$current)"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$start = $end">
<xsl:value-of select="concat($last,$current)"/>
</xsl:if>
</xsl:template>
<xsl:template name="condition-str">
<xsl:param name="param-str"/>
<xsl:choose>
<xsl:when test="contains($param-str,'(')">
<xsl:call-template name="condition-str">
<xsl:with-param name="param-str" select="substring-after($param-str,'(')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-before($param-str,':')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="encode-as-cell-range-address">
<xsl:param name="string"/>
<xsl:value-of select="$string"/>
</xsl:template>
<xsl:template name="encode-as-cell-address">
<xsl:param name="string"/>
<xsl:value-of select="$string"/>
</xsl:template>
<!--chengxiuzhi 111111111111111111111111111111111111111111111111111111111111111-->
<!-- measure_conversion.xsl Begin-->
<xsl:param name="dpi" select="111"/>
<xsl:param name="centimeter-in-mm" select="10"/>
<xsl:param name="inch-in-mm" select="25.4"/>
<xsl:param name="didot-point-in-mm" select="0.376065"/>
<xsl:param name="pica-in-mm" select="4.2333333"/>
<xsl:param name="point-in-mm" select="0.3527778"/>
<xsl:param name="twip-in-mm" select="0.017636684"/>
<xsl:param name="pixel-in-mm" select="$inch-in-mm div $dpi"/>
<!-- ***** MEASUREMENT CONVERSIONS *****
PARAM 'value'
The measure to be converted.
The current measure is judged by a substring (e.g. 'mm', 'cm', 'in', 'pica'...)
directly added to the number.
PARAM 'rounding-factor'
Is used for the rounding of decimal places.
The parameter number is the product of 1 and some '10', where
every zero represents a decimal place.
For example, providing as parameter:
<xsl:param name="rounding-factor" select="10000" />
Gives by default four decimal places.
To round two decimal places, basically the following is done:
<xsl:value-of select="round(100 * value) div 100"/>
RETURN The converted number, by default rounded to four decimal places.
In case the input measure could not be matched the same value is
returned and a warning message is written out.
MEASURE LIST:
* 1 millimeter (mm), the basic measure
* 1 centimeter (cm) = 10 mm
* 1 inch (in) = 25.4 mm
While the English have already seen the light (read: the metric system), the US
remains loyal to this medieval system.
* 1 point (pt) = 0.35277777.. mm
Sometimes called PostScript point (ppt), as when Adobe created PostScript, they added their own system of points.
There are exactly 72 PostScript points in 1 inch.
* 1 twip = twentieth of a (PostScript) point
A twip (twentieth of a point) is a 1/20th of a PostScript point, a traditional measure in printing.
* 1 didot point (dpt) = 0.376065 mm
Didot point after the French typographer Firmin Didot (1764-1836).
More details under
http://www.unc.edu/~rowlett/units/dictP.html:
"A unit of length used by typographers and printers. When printing was done
from hand-set metal type, one point represented the smallest element of type
that could be handled, roughly 1/64 inch. Eventually, the point was standardized
in Britain and America as exactly 1/72.27 = 0.013 837 inch, which is
about 0.35 mm (351.46 micrometers). In continental Europe, typographers
traditionally used a slightly larger point of 0.014 83 inch (about
1/72 pouce, 0.377 mm, or roughly 1/67 English inch), called a Didot point
after the French typographer Firmin Didot (1764-1836). In the U.S.,
Adobe software defines the point to be exactly 1/72 inch (0.013 888 9 inch
or 0.352 777 8 millimeters) and TeX software uses a slightly smaller point
of 0.351 459 8035 mm. The German standards agency DIN has proposed that
all these units be replaced by multiples of 0.25 millimeters (1/101.6 inch).
* 1 pica = 4.233333 mm
1/6 inch or 12 points
* 1 pixel (px) = 0.26458333.. mm (relative to 'DPI', here: 96 dpi)
Most pictures have the 96 dpi resolution, but the dpi variable may vary by stylesheet parameter
-->
<!-- changing measure to mm -->
<xsl:template name="convert2mm">
<xsl:param name="value"/>
<xsl:param name="rounding-factor" select="10000"/>
<xsl:choose>
<xsl:when test="contains($value, 'mm')">
<xsl:value-of select="substring-before($value, 'mm')"/>
</xsl:when>
<xsl:when test="contains($value, 'cm')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm' ) * $centimeter-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'in')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in' ) * $inch-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'pt')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') * $point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'twip')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') * $twip-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'dpt')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') * $didot-point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'pica')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') * $pica-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'px')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') * $pixel-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'mm'!</xsl:message>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- changing measure to cm -->
<xsl:template name="convert2cm">
<xsl:param name="value"/>
<xsl:param name="rounding-factor" select="10000"/>
<xsl:choose>
<xsl:when test="contains($value, 'mm')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $centimeter-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'cm')">
<xsl:value-of select="substring-before($value, 'cm')"/>
</xsl:when>
<xsl:when test="contains($value, 'in')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $centimeter-in-mm * $inch-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'pt')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $centimeter-in-mm * $point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'dpt')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $centimeter-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'pica')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $centimeter-in-mm * $pica-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'twip')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $centimeter-in-mm * $twip-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'px')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $centimeter-in-mm * $pixel-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'cm'!</xsl:message>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- changing measure to inch (cp. section comment) -->
<xsl:template name="convert2in">
<xsl:param name="value"/>
<xsl:param name="rounding-factor" select="10000"/>
<xsl:choose>
<xsl:when test="contains($value, 'mm')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $inch-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'cm')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $inch-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'in')">
<xsl:value-of select="substring-before($value, 'in')"/>
</xsl:when>
<xsl:when test="contains($value, 'pt')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $inch-in-mm * $point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'dpt')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $inch-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'pica')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $inch-in-mm * $pica-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'twip')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $inch-in-mm * $twip-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'px')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $inch-in-mm * $pixel-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'in'!</xsl:message>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- changing measure to dpt (cp. section comment) -->
<xsl:template name="convert2dpt">
<xsl:param name="value"/>
<xsl:param name="rounding-factor" select="10000"/>
<xsl:choose>
<xsl:when test="contains($value, 'mm')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $didot-point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'cm')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $didot-point-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'in')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $didot-point-in-mm * $inch-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'pt')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $didot-point-in-mm * $point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'dpt')">
<xsl:value-of select="substring-before($value, 'dpt')"/>
</xsl:when>
<xsl:when test="contains($value, 'pica')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $didot-point-in-mm * $pica-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'twip')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $didot-point-in-mm * $twip-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'px')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $didot-point-in-mm * $pixel-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'dpt'!</xsl:message>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- changing measure to pica (cp. section comment) -->
<xsl:template name="convert2pica">
<xsl:param name="value"/>
<xsl:param name="rounding-factor" select="10000"/>
<xsl:choose>
<xsl:when test="contains($value, 'mm')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $pica-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'cm')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $pica-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'in')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $pica-in-mm * $inch-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'pt')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $pica-in-mm * $point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'dpt')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $pica-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'pica')">
<xsl:value-of select="substring-before($value, 'pica')"/>
</xsl:when>
<xsl:when test="contains($value, 'twip')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $pica-in-mm * $twip-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'px')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $pica-in-mm * $pixel-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'pica'!</xsl:message>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- changing measure to pt (cp. section comment) -->
<xsl:template name="convert2pt">
<xsl:param name="value"/>
<xsl:param name="rounding-factor" select="10000"/>
<xsl:choose>
<xsl:when test="contains($value, 'mm')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'cm')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $point-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'in')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $point-in-mm * $inch-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'pt')">
<xsl:value-of select="substring-before($value, 'pt')"/>
</xsl:when>
<xsl:when test="contains($value, 'dpt')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $point-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'pica')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $point-in-mm * $pica-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'twip')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $point-in-mm * $twip-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'px')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $point-in-mm * $pixel-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'pt'!</xsl:message>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- changing measure to pt (cp. section comment) -->
<xsl:template name="convert2twip">
<xsl:param name="value"/>
<xsl:param name="rounding-factor" select="10000"/>
<xsl:choose>
<xsl:when test="contains($value, 'mm')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $twip-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'cm')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $twip-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'in')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $twip-in-mm * $inch-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'pt')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $twip-in-mm * $point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'dpt')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $twip-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'pica')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $twip-in-mm * $pica-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:when test="contains($value, 'twip')">
<xsl:value-of select="substring-before($value, 'twip')"/>
</xsl:when>
<xsl:when test="contains($value, 'px')">
<xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $twip-in-mm * $pixel-in-mm)) div $rounding-factor"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'twip'!</xsl:message>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- changing measure to pixel by via parameter provided dpi (dots per inch) standard factor (cp. section comment) -->
<xsl:template name="convert2px">
<xsl:param name="value"/>
<xsl:choose>
<xsl:when test="contains($value, 'mm')">
<xsl:value-of select="round(number(substring-before($value, 'mm')) div $pixel-in-mm)"/>
</xsl:when>
<xsl:when test="contains($value, 'cm')">
<xsl:value-of select="round(number(substring-before($value, 'cm')) div $pixel-in-mm * $centimeter-in-mm)"/>
</xsl:when>
<xsl:when test="contains($value, 'in')">
<xsl:value-of select="round(number(substring-before($value, 'in')) div $pixel-in-mm * $inch-in-mm)"/>
</xsl:when>
<xsl:when test="contains($value, 'pt')">
<xsl:value-of select="round(number(substring-before($value, 'pt')) div $pixel-in-mm * $point-in-mm)"/>
</xsl:when>
<xsl:when test="contains($value, 'dpt')">
<xsl:value-of select="round(number(substring-before($value, 'dpt')) div $pixel-in-mm * $didot-point-in-mm)"/>
</xsl:when>
<xsl:when test="contains($value, 'pica')">
<xsl:value-of select="round(number(substring-before($value, 'pica')) div $pixel-in-mm * $pica-in-mm)"/>
</xsl:when>
<xsl:when test="contains($value, 'twip')">
<xsl:value-of select="round(number(substring-before($value, 'twip')) div $pixel-in-mm * $twip-in-mm)"/>
</xsl:when>
<xsl:when test="contains($value, 'px')">
<xsl:value-of select="$value"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'px'!</xsl:message>
<xsl:value-of select="$value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- chenjh zhangying-->
<xsl:template name="create-content-validations">
<xsl:param name="validation-set"/>
<xsl:if test="$validation-set">
<xsl:variable name="first-validation" select="$validation-set[1]"/>
<xsl:variable name="condition-text">
<xsl:choose>
<xsl:when test="$first-validation/:/text()='whole number'">
<xsl:choose>
<xsl:when test="$first-validation/:/text()='between' ">
<xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content-is-between','(',$first-validation/:/text(),',',$first-validation/:/text(),')')"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='not between'">
<xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content-is-not-between','(',$first-validation/:/text(),',',$first-validation/:/text(),')')"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content()=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='not equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content()!=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='greater than'">
<xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content()&gt;',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='less than'">
<xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content()&lt;',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='greater than or equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content()&gt;=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='less than or equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content()&lt;=',$first-validation/:/text())"/>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="$first-validation/:/text()='decimal'">
<xsl:choose>
<xsl:when test="$first-validation/:/text()='between' ">
<xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content-is-between','(',$first-validation/:/text(),',',$first-validation/:/text(),')')"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='not between'">
<xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content-is-not-between','(',$first-validation/:/text(),',',$first-validation/:/text(),')')"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content()=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='not equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content()!=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='greater than'">
<xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content()&gt;',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='less than'">
<xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content()&lt;',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='greater than or equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content()&gt;=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='less than or equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content()&lt;=',$first-validation/:/text())"/>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="$first-validation/:/text()='date'">
<xsl:choose>
<xsl:when test="$first-validation/:/text()='between' ">
<xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content-is-between','(',$first-validation/:/text(),',',$first-validation/:/text(),')')"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='not between'">
<xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content-is-not-between','(',$first-validation/:/text(),',',$first-validation/:/text(),')')"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content()=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='not equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content()!=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='greater than'">
<xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content()&gt;',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='less than'">
<xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content()&lt;',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='greater than or equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content()&gt;=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='less than or equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content()&lt;=',$first-validation/:/text())"/>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="$first-validation/:/text()='time'">
<xsl:choose>
<xsl:when test="$first-validation/:/text()='between' ">
<xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content-is-between','(',$first-validation/:/text(),',',$first-validation/:/text(),')')"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='not between'">
<xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content-is-not-between','(',$first-validation/:/text(),',',$first-validation/:/text(),')')"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content()=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='not equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content()!=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='greater than'">
<xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content()&gt;',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='less than'">
<xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content()&lt;',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='greater than or equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content()&gt;=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='less than or equal to'">
<xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content()&lt;=',$first-validation/:/text())"/>
</xsl:when>
</xsl:choose>
</xsl:when>
<!-- add 20060317 -->
<xsl:when test="$first-validation/:/text()='cell range'">
<xsl:value-of select="concat('oooc:cell-content-is-in-list',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='list'">
<xsl:value-of select="concat('oooc:cell-content-is-in-list',$first-validation/:/text())"/>
</xsl:when>
<!-- add 20060317 end -->
<xsl:when test="$first-validation/:/text()='text length'">
<xsl:choose>
<xsl:when test="$first-validation/:/text()='between' ">
<xsl:value-of select="concat('oooc:cell-content-text-length-is-between','(',$first-validation/:/text(),',',$first-validation/:/text(),')')"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='not between'">
<xsl:value-of select="concat('oooc:cell-content-text-length-is-not-between','(',$first-validation/:/text(),',',$first-validation/:/text(),')')"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='equal to'">
<xsl:value-of select="concat('oooc:cell-content-text-length()=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='not equal to'">
<xsl:value-of select="concat('oooc:cell-content-text-length()!=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='greater than'">
<xsl:value-of select="concat('oooc:cell-content-text-length()&gt;',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='less than'">
<xsl:value-of select="concat('oooc:cell-content-text-length()&lt;',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='greater than or equal to'">
<xsl:value-of select="concat('oooc:cell-content-text-length()&gt;=',$first-validation/:/text())"/>
</xsl:when>
<xsl:when test="$first-validation/:/text()='less than or equal to'">
<xsl:value-of select="concat('oooc:cell-content-text-length()&lt;=',$first-validation/:/text())"/>
</xsl:when>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:element name="table:content-validation">
<xsl:attribute name="table:name"><xsl:value-of select="concat('val',count($first-validation/preceding-sibling:::)+1)"/></xsl:attribute>
<xsl:attribute name="table:condition"><xsl:value-of select="$condition-text"/></xsl:attribute>
<xsl:attribute name="table:allow-empty-cell"><xsl:value-of select="$first-validation/:/@:"/></xsl:attribute>
<xsl:attribute name="table:base-cell-address"><xsl:value-of select="translate(substring-after($first-validation/:/text(),':'),'$','')"/></xsl:attribute>
<xsl:if test="$first-validation/:">
<xsl:element name="table:help-message">
<xsl:attribute name="table:title"><xsl:value-of select="$first-validation/:/@:"/></xsl:attribute>
<xsl:attribute name="table:display"><xsl:value-of select="$first-validation/:/@:"/></xsl:attribute>
<xsl:element name="text:p">
<xsl:value-of select="$first-validation/:/@:"/>
</xsl:element>
</xsl:element>
</xsl:if>
<xsl:if test="$first-validation/:">
<xsl:element name="table:error-message">
<xsl:attribute name="table:title"><xsl:value-of select="$first-validation/:/@:"/></xsl:attribute>
<xsl:attribute name="table:display"><xsl:value-of select="$first-validation/:/@:"/></xsl:attribute>
<xsl:attribute name="table:message-type"><xsl:value-of select="$first-validation/:/@:"/></xsl:attribute>
<xsl:element name="text:p">
<xsl:value-of select="$first-validation/:/@:"/>
</xsl:element>
</xsl:element>
</xsl:if>
</xsl:element>
<xsl:call-template name="create-content-validations">
<xsl:with-param name="validation-set" select="$validation-set[position()!=1]"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<!--RedOffice Comment from Zengjh:UOF0020 2006-04-26 charts-->
<xsl:template match=":">
<xsl:param name="table-name"/>
<xsl:element name="draw:frame">
<xsl:attribute name="draw:z-index"><xsl:value-of select="'0'"/></xsl:attribute>
<xsl:attribute name="svg:width"><xsl:value-of select="concat(@:,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:height"><xsl:value-of select="concat(@:,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:x"><xsl:value-of select="concat(@:x,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:y"><xsl:value-of select="concat(@:y,$uofUnit)"/></xsl:attribute>
<xsl:variable name="chart-current">
<xsl:number level="any" count=":" format="1"/>
</xsl:variable>
<xsl:attribute name="draw:style-name"><xsl:value-of select="concat('chart', $chart-current)"/></xsl:attribute>
<xsl:variable name="series-value-start">
<xsl:for-each select=":/:[position()='1']">
<xsl:value-of select="@:"/>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="series-value-end">
<xsl:for-each select=":/:[position()=last()]">
<xsl:value-of select="@:"/>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="series-generate-type">
<xsl:choose>
<xsl:when test=":/@">
<xsl:value-of select=":/@"/>
</xsl:when>
<xsl:when test="substring(substring-after($series-value-start,'!'),2,1)=substring(substring-after($series-value-start,':'),2,1)">row</xsl:when>
<xsl:otherwise>col</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:element name="draw:object">
<xsl:attribute name="draw:notify-on-update-of-ranges"><xsl:value-of select=":/@:"/></xsl:attribute>
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" office:version="1.0" office:mimetype="application/vnd.oasis.opendocument.chart">
<xsl:call-template name="表:元数据">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="@表:类型"/>
<xsl:with-param name="table-subtype" select="@表:子类型"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
<xsl:call-template name="表:式样集">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="@表:类型"/>
<xsl:with-param name="table-subtype" select="@表:子类型"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
<xsl:call-template name="表:主体">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="@表:类型"/>
<xsl:with-param name="table-subtype" select="@表:子类型"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</office:document>
</xsl:element>
<xsl:element name="draw:image">
<office:binary-data>
<xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象/uof:数据"/>
</office:binary-data>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template name="表:元数据">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:for-each select="/uof:UOF/uof:元数据">
<office:meta>
<meta:generator>OpenOffice.org 1.1.3 (Win32)</meta:generator>
<xsl:if test="uof:标题">
<dc:title>
<xsl:value-of select="uof:标题"/>
</dc:title>
</xsl:if>
<xsl:if test="uof:摘要">
<dc:description>
<xsl:value-of select="uof:摘要"/>
</dc:description>
</xsl:if>
<xsl:if test="uof:主题">
<dc:subject>
<xsl:value-of select="uof:主题"/>
</dc:subject>
</xsl:if>
<xsl:if test="uof:作者">
<meta:initial-creator>
<xsl:value-of select="uof:作者"/>
</meta:initial-creator>
</xsl:if>
<xsl:if test="uof:创建日期">
<meta:creation-date>
<xsl:value-of select="uof:创建日期"/>
</meta:creation-date>
</xsl:if>
<xsl:if test="uof:最后作者">
<dc:creator>
<xsl:value-of select="uof:最后作者"/>
</dc:creator>
</xsl:if>
<xsl:if test="uof:编辑时间">
<meta:editing-duration>
<xsl:value-of select="uof:编辑时间"/>
</meta:editing-duration>
</xsl:if>
<dc:language/>
<meta:keywords>
<meta:keyword>
<xsl:value-of select="uof:关键字集/uof:关键字"/>
</meta:keyword>
</meta:keywords>
<xsl:if test="uof:编辑次数">
<meta:editing-cycles>
<xsl:value-of select="uof:编辑次数"/>
</meta:editing-cycles>
</xsl:if>
<xsl:if test="uof:分类">
<meta:user-defined meta:name="Category">
<xsl:value-of select="uof:分类"/>
</meta:user-defined>
</xsl:if>
<xsl:if test="uof:经理名称">
<meta:user-defined meta:name="Manager">
<xsl:value-of select="uof:经理名称"/>
</meta:user-defined>
</xsl:if>
<xsl:if test="uof:公司名称">
<meta:user-defined meta:name="Company">
<xsl:value-of select="uof:公司名称"/>
</meta:user-defined>
</xsl:if>
<xsl:if test="uof:创建应用程序">
<meta:user-defined meta:name="Version">
<xsl:value-of select="uof:创建应用程序"/>
</meta:user-defined>
</xsl:if>
</office:meta>
</xsl:for-each>
</xsl:template>
<xsl:template name="表:式样集">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<office:styles>
<draw:stroke-dash draw:name="Ultrafine_20_Dashed" draw:display-name="Ultrafine Dashed" draw:style="rect" draw:dots1="1" draw:dots1-length="0.051cm" draw:dots2="1" draw:dots2-length="0.051cm" draw:distance="0.051cm"/>
<draw:stroke-dash draw:name="Fine_20_Dashed" draw:display-name="Fine Dashed" draw:style="rect" draw:dots1="1" draw:dots1-length="0.508cm" draw:dots2="1" draw:dots2-length="0.508cm" draw:distance="0.508cm"/>
<draw:stroke-dash draw:name="Ultrafine_20_2_20_Dots_20_3_20_Dashes" draw:display-name="Ultrafine 2 Dots 3 Dashes" draw:style="rect" draw:dots1="2" draw:dots1-length="0.051cm" draw:dots2="3" draw:dots2-length="0.254cm" draw:distance="0.127cm"/>
<draw:stroke-dash draw:name="Fine_20_Dashed_20__28_var_29_" draw:display-name="Fine Dashed (var)" draw:style="rect" draw:dots1="1" draw:dots1-length="197%" draw:distance="197%"/>
<draw:stroke-dash draw:name="Fine_20_Dotted" draw:display-name="Fine Dotted" draw:style="rect" draw:dots1="1" draw:distance="0.457cm"/>
<draw:stroke-dash draw:name="Fine_20_Dashed_20__28_var_29_" draw:display-name="Fine Dashed (var)" draw:style="rect" draw:dots1="1" draw:dots1-length="197%" draw:distance="197%"/>
<draw:stroke-dash draw:name="Fine_20_Dotted" draw:display-name="Fine Dotted" draw:style="rect" draw:dots1="1" draw:distance="0.457cm"/>
<draw:stroke-dash draw:name="Line_20_with_20_Fine_20_Dots" draw:display-name="Line with Fine Dots" draw:style="rect" draw:dots1="1" draw:dots1-length="2.007cm" draw:dots2="10" draw:distance="0.152cm"/>
<draw:stroke-dash draw:name="Line_20_Style_20_9" draw:display-name="Line Style 9" draw:style="rect" draw:dots1="1" draw:dots1-length="197%" draw:distance="120%"/>
<draw:stroke-dash draw:name="_33__20_Dashes_20_3_20_Dots_20__28_var_29_" draw:display-name="3 Dashes 3 Dots (var)" draw:style="rect" draw:dots1="3" draw:dots1-length="197%" draw:dots2="3" draw:distance="100%"/>
<draw:stroke-dash draw:name="_32__20_Dots_20_1_20_Dash" draw:display-name="2 Dots 1 Dash" draw:style="rect" draw:dots1="2" draw:dots2="1" draw:dots2-length="0.203cm" draw:distance="0.203cm"/>
<draw:stroke-dash draw:name="Ultrafine_20_Dotted_20__28_var_29_" draw:display-name="Ultrafine Dotted (var)" draw:style="rect" draw:dots1="1" draw:distance="50%"/>
<draw:stroke-dash draw:name="Dash_20_10" draw:display-name="Dash 10" draw:style="rect" draw:dots1="1" draw:dots1-length="0.02cm" draw:dots2="1" draw:dots2-length="0.02cm" draw:distance="0.02cm"/>
<xsl:for-each select="//图:图片">
<xsl:variable name="chart-image-name" select="@图:名称"/>
<draw:fill-image>
<xsl:attribute name="draw:name"><xsl:value-of select="@图:名称"/></xsl:attribute>
<office:binary-data>
<xsl:for-each select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$chart-image-name]">
<xsl:value-of select="uof:数据"/>
</xsl:for-each>
</office:binary-data>
</draw:fill-image>
</xsl:for-each>
<xsl:for-each select="//图:图案">
<xsl:variable name="chart-hatch-name" select="@图:图形引用"/>
<draw:hatch>
<xsl:if test="@图:图形引用">
<xsl:attribute name="draw:name"><xsl:value-of select="$chart-hatch-name"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:类型">
<xsl:attribute name="draw:style"><xsl:value-of select="@图:类型"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:前景色">
<xsl:attribute name="draw:color"><xsl:value-of select="@图:前景色"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:距离">
<xsl:attribute name="draw:distance"><xsl:value-of select="@图:距离"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:旋转度">
<xsl:attribute name="draw:rotation"><xsl:value-of select="@图:旋转度"/></xsl:attribute>
</xsl:if>
</draw:hatch>
</xsl:for-each>
<xsl:for-each select="//图:渐变">
<draw:gradient>
<xsl:if test="@图:图形引用">
<xsl:attribute name="draw:name"><xsl:value-of select="@图:图形引用"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:起始色">
<xsl:attribute name="draw:start-color"><xsl:value-of select="@图:起始色"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:终止色">
<xsl:attribute name="draw:end-color"><xsl:value-of select="@图:终止色"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:种子类型">
<xsl:attribute name="draw:style"><xsl:value-of select="@图:种子类型"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:起始浓度">
<xsl:attribute name="draw:start-intensity"><xsl:value-of select="@图:起始浓度"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:终止浓度">
<xsl:attribute name="draw:end-intensity"><xsl:value-of select="@图:终止浓度"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:渐变方向">
<xsl:attribute name="draw:angle"><xsl:value-of select="@图:渐变方向"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:边界">
<xsl:attribute name="draw:border"><xsl:value-of select="@图:边界"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:种子X位置">
<xsl:attribute name="draw:cx"><xsl:value-of select="@图:种子X位置"/></xsl:attribute>
</xsl:if>
<xsl:if test="@图:种子Y位置">
<xsl:attribute name="draw:cy"><xsl:value-of select="@图:种子Y位置"/></xsl:attribute>
</xsl:if>
</draw:gradient>
</xsl:for-each>
</office:styles>
<office:automatic-styles>
<xsl:for-each select="node( )">
<xsl:choose>
<xsl:when test="name(.)='表:图表区'">
<xsl:call-template name="表:图表区式样">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="name(.)='表:绘图区'">
<xsl:call-template name="表:绘图区式样">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
<xsl:call-template name="表:图表背景墙式样">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="name(.)='表:分类轴'">
<xsl:call-template name="表:分类轴式样">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="name(.)='表:数值轴'">
<xsl:call-template name="表:数值轴式样">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="name(.)='表:图例'">
<xsl:call-template name="表:图例式样">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="name(.)='表:数据表'">
<xsl:call-template name="表:数据表式样">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="name(.)='表:数据系列集'">
<xsl:call-template name="表:数据系列集式样">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="name(.)='表:数据点集'">
<xsl:call-template name="表:数据点集式样">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="name(.)='表:网格线集'">
<xsl:call-template name="表:网格线集式样">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="name(.)='表:数据源'">
<xsl:call-template name="表:数据源式样">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="name(.)='表:标题集'">
<xsl:call-template name="表:标题集式样">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:for-each>
</office:automatic-styles>
</xsl:template>
<xsl:template name="表:主体">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<office:body>
<office:chart>
<chart:chart>
<xsl:attribute name="svg:width"><xsl:value-of select="concat(@表:宽度,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:height"><xsl:value-of select="concat(@表:高度,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="chart:class"><xsl:choose><xsl:when test="$table-type='column'">chart:bar</xsl:when><xsl:when test="$table-type='line'">chart:line</xsl:when><xsl:when test="$table-type='pie'"><xsl:choose><xsl:when test="$table-subtype='pie_ring'">chart:ring</xsl:when><xsl:otherwise>chart:circle</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise><xsl:value-of select="$table-type"/></xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:attribute name="chart:style-name">chart-area</xsl:attribute>
<xsl:for-each select="表:标题集/表:标题[@表:位置='chart']">
<chart:title chart:style-name="chart-title">
<text:p>
<xsl:value-of select="@表:名称"/>
</text:p>
</chart:title>
</xsl:for-each>
<xsl:call-template name="表:图例区域">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
<xsl:call-template name="表:绘图区域">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
<xsl:call-template name="表:本地表">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</chart:chart>
</office:chart>
</office:body>
</xsl:template>
<xsl:template name="表:图例区域">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<chart:legend>
<xsl:attribute name="chart:legend-position"><xsl:choose><xsl:when test="表:图例/@表:位置"><xsl:value-of select="表:图例/@表:位置"/></xsl:when><xsl:otherwise>right</xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:attribute name="svg:x"><xsl:value-of select="concat(表:图例/@表:x坐标,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:y"><xsl:value-of select="concat(表:图例/@表:y坐标,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="chart:style-name">legend</xsl:attribute>
</chart:legend>
</xsl:template>
<xsl:template name="表:绘图区域">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<chart:plot-area>
<xsl:variable name="start-range">
<xsl:value-of select="concat('.$',substring(substring-after($series-value-start,'!'),1,1),'$',substring-before(substring(substring-after($series-value-start,'!'),2),':'))"/>
</xsl:variable>
<xsl:variable name="end-range">
<xsl:value-of select="concat(':.$',substring(substring-after($series-value-end,':'),1,1),'$',substring(substring-after($series-value-end,':'),2))"/>
</xsl:variable>
<xsl:attribute name="chart:style-name">plot-area</xsl:attribute>
<xsl:attribute name="table:cell-range-address"><xsl:value-of select="concat($table-name,$start-range,$end-range)"/></xsl:attribute>
<!--xsl:value-of select="表:数据源/@表:数据区域"/-->
<xsl:attribute name="chart:table-number-list">0</xsl:attribute>
<xsl:attribute name="svg:width"><xsl:value-of select="concat(表:绘图区/@表:宽度,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:height"><xsl:value-of select="concat(表:绘图区/@表:高度,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:x"><xsl:value-of select="concat(表:绘图区/@表:x坐标,$uofUnit)"/></xsl:attribute>
<xsl:attribute name="svg:y"><xsl:value-of select="concat(表:绘图区/@表:y坐标,$uofUnit)"/></xsl:attribute>
<xsl:if test="表:分类轴">
<chart:axis chart:dimension="x" chart:name="primary-x" chart:style-name="category-axis">
<xsl:for-each select="表:标题集/表:标题[@表:位置='category axis']">
<chart:title chart:style-name="category-axis-title">
<text:p>
<xsl:value-of select="@表:名称"/>
</text:p>
</chart:title>
</xsl:for-each>
<chart:categories/>
<xsl:if test="表:网格线集/表:网格线[@表:位置='category axis']">
<chart:grid chart:style-name="category-axis-grid" chart:class="major"/>
</xsl:if>
</chart:axis>
</xsl:if>
<xsl:if test="表:数值轴">
<chart:axis chart:dimension="y" chart:name="primary-y" chart:style-name="value-axis">
<xsl:for-each select="表:标题集/表:标题[@表:位置='value axis']">
<chart:title chart:style-name="value-axis-title">
<text:p>
<xsl:value-of select="@表:名称"/>
</text:p>
</chart:title>
</xsl:for-each>
<chart:grid chart:style-name="value-axis-grid" chart:class="major"/>
</chart:axis>
</xsl:if>
<xsl:call-template name="表:数据组">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
<chart:wall>
<xsl:attribute name="chart:style-name">chart-wall</xsl:attribute>
</chart:wall>
<chart:floor>
<xsl:attribute name="chart:style-name">chart-floor</xsl:attribute>
</chart:floor>
</chart:plot-area>
</xsl:template>
<xsl:template name="表:本地表">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<table:table table:name="local-table">
<table:table-header-columns>
<xsl:call-template name="表:本地表_表头列">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="sum" select="1"/>
</xsl:call-template>
</table:table-header-columns>
<table:table-columns>
<xsl:variable name="column-sum">
<xsl:value-of select="count(表:数据源/表:系列)"/>
</xsl:variable>
<xsl:call-template name="表:本地表_列">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="column-sum" select="$column-sum"/>
</xsl:call-template>
</table:table-columns>
<table:table-header-rows>
<xsl:call-template name="表:本地表_表头行">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="row-current" select="1"/>
<xsl:with-param name="fixed-row-sum" select="'1'"/>
</xsl:call-template>
</table:table-header-rows>
<table:table-rows>
<xsl:variable name="row-start">
<xsl:value-of select="substring-before(substring(substring-after($series-value-start,'!'),2),':')"/>
</xsl:variable>
<xsl:variable name="row-end">
<xsl:value-of select="substring(substring-after($series-value-end,':'),2)"/>
</xsl:variable>
<xsl:variable name="fixed-row-sum">
<xsl:value-of select="$row-end -$row-start +1"/>
</xsl:variable>
<xsl:call-template name="表:本地表_行">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="row-current" select="'1'"/>
<xsl:with-param name="fixed-row-sum" select="$fixed-row-sum"/>
</xsl:call-template>
</table:table-rows>
</table:table>
</xsl:template>
<xsl:template name="表:本地表_表头列">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:param name="sum"/>
<xsl:choose>
<xsl:when test="$sum=0"/>
<xsl:otherwise>
<table:table-column/>
<xsl:call-template name="表:本地表_表头列">
<xsl:with-param name="sum" select="$sum -1"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="表:本地表_列">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:param name="column-sum"/>
<xsl:choose>
<xsl:when test="$column-sum=0"/>
<xsl:otherwise>
<table:table-column/>
<xsl:call-template name="表:本地表_列">
<xsl:with-param name="column-sum" select="$column-sum -1"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="表:本地表_表头行">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:param name="row-current"/>
<xsl:param name="fixed-row-sum"/>
<xsl:choose>
<xsl:when test="$row-current >$fixed-row-sum"/>
<xsl:otherwise>
<table:table-row>
<xsl:variable name="series-value-current">
<xsl:for-each select="表:数据源/表:系列[position()=$row-current]">
<xsl:value-of select="@表:系列值"/>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="cell-start">
<xsl:call-template name="General-Char-Transition">
<xsl:with-param name="input-char" select="substring(substring-after($series-value-start,'!'),1,1)"/>
<xsl:with-param name="output-type" select="'ARABIC'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="cell-end">
<xsl:choose>
<xsl:when test="$series-generate-type='row'">
<xsl:call-template name="General-Char-Transition">
<xsl:with-param name="input-char" select="substring(substring-after($series-value-start,':'),1,1)"/>
<xsl:with-param name="output-type" select="'ARABIC'"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="General-Char-Transition">
<xsl:with-param name="input-char" select="substring(substring-after($series-value-end,'!'),1,1)"/>
<xsl:with-param name="output-type" select="'ARABIC'"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="cell-sum">
<xsl:value-of select="$cell-end -$cell-start +2"/>
</xsl:variable>
<xsl:variable name="fixed-cell-sum" select="$cell-sum"/>
<xsl:call-template name="表:本地表_表头行_单元格">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="series-value-current" select="$series-value-current"/>
<xsl:with-param name="row-current" select="$row-current"/>
<xsl:with-param name="cell-sum" select="$cell-sum"/>
<xsl:with-param name="fixed-cell-sum" select="$fixed-cell-sum"/>
</xsl:call-template>
</table:table-row>
<xsl:call-template name="表:本地表_表头行">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="row-current" select="$row-current +1"/>
<xsl:with-param name="fixed-row-sum" select="$fixed-row-sum"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="表:本地表_表头行_单元格">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:param name="series-value-current"/>
<xsl:param name="row-current"/>
<xsl:param name="cell-sum"/>
<xsl:param name="fixed-cell-sum"/>
<xsl:choose>
<xsl:when test="$cell-sum=0"/>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="$fixed-cell-sum=$cell-sum">
<table:table-cell>
<text:p/>
</table:table-cell>
</xsl:when>
<xsl:otherwise>
<table:table-cell office:value-type="string">
<xsl:variable name="cell-no">
<xsl:value-of select="$fixed-cell-sum -$cell-sum +1"/>
</xsl:variable>
<xsl:variable name="cell-start">
<xsl:call-template name="General-Char-Transition">
<xsl:with-param name="input-char" select="substring(substring-after($series-value-start,'!'),1,1)"/>
<xsl:with-param name="output-type" select="'ARABIC'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="char">
<xsl:call-template name="General-Char-Transition">
<xsl:with-param name="input-char" select="$cell-start +$cell-no -2"/>
<xsl:with-param name="output-type" select="'CHARS_UPPER_LETTER'"/>
</xsl:call-template>
</xsl:variable>
<text:p>
<xsl:value-of select="concat('列 ',$char)"/>
</text:p>
</table:table-cell>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="表:本地表_表头行_单元格">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="series-value-current" select="$series-value-current"/>
<xsl:with-param name="row-current" select="$row-current"/>
<xsl:with-param name="cell-sum" select="$cell-sum -1"/>
<xsl:with-param name="fixed-cell-sum" select="$fixed-cell-sum"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="表:本地表_行">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:param name="row-current"/>
<xsl:param name="fixed-row-sum"/>
<xsl:choose>
<xsl:when test="$row-current >$fixed-row-sum"/>
<xsl:otherwise>
<xsl:variable name="series-value-current">
<xsl:for-each select="表:数据源/表:系列[position()=$row-current]">
<xsl:value-of select="@表:系列值"/>
</xsl:for-each>
</xsl:variable>
<table:table-row>
<xsl:variable name="cell-start">
<xsl:call-template name="General-Char-Transition">
<xsl:with-param name="input-char" select="substring(substring-after($series-value-start,'!'),1,1)"/>
<xsl:with-param name="output-type" select="'ARABIC'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="cell-end">
<xsl:choose>
<xsl:when test="$series-generate-type='row'">
<xsl:call-template name="General-Char-Transition">
<xsl:with-param name="input-char" select="substring(substring-after($series-value-start,':'),1,1)"/>
<xsl:with-param name="output-type" select="'ARABIC'"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="General-Char-Transition">
<xsl:with-param name="input-char" select="substring(substring-after($series-value-end,'!'),1,1)"/>
<xsl:with-param name="output-type" select="'ARABIC'"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="cell-sum">
<xsl:value-of select="$cell-end -$cell-start +2"/>
</xsl:variable>
<xsl:variable name="fixed-cell-sum" select="$cell-sum"/>
<xsl:call-template name="表:本地表_行_单元格">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="series-value-current" select="$series-value-current"/>
<xsl:with-param name="row-current" select="$row-current"/>
<xsl:with-param name="cell-sum" select="$cell-sum"/>
<xsl:with-param name="fixed-cell-sum" select="$fixed-cell-sum"/>
</xsl:call-template>
</table:table-row>
<xsl:call-template name="表:本地表_行">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="row-current" select="$row-current +1"/>
<xsl:with-param name="fixed-row-sum" select="$fixed-row-sum"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="表:本地表_行_单元格">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:param name="series-value-current"/>
<xsl:param name="row-current"/>
<xsl:param name="cell-sum"/>
<xsl:param name="fixed-cell-sum"/>
<xsl:choose>
<xsl:when test="$cell-sum=0"/>
<xsl:otherwise>
<xsl:variable name="cell-start">
<xsl:call-template name="General-Char-Transition">
<xsl:with-param name="input-char" select="substring(substring-after($series-value-start,'!'),1,1)"/>
<xsl:with-param name="output-type" select="'ARABIC'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="cell-no">
<xsl:value-of select="$cell-start +$fixed-cell-sum -$cell-sum -1"/>
</xsl:variable>
<xsl:variable name="row-start">
<xsl:value-of select="substring(substring-after($series-value-start,'!'),2,1)"/>
</xsl:variable>
<xsl:variable name="row-no">
<xsl:value-of select="$row-start +$row-current -1"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$fixed-cell-sum=$cell-sum">
<table:table-cell office:value-type="string">
<text:p>
<xsl:value-of select="concat('行 ',$row-no)"/>
</text:p>
</table:table-cell>
</xsl:when>
<xsl:otherwise>
<table:table-cell office:value-type="float">
<xsl:variable name="cell-content">
<xsl:choose>
<xsl:when test="/uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/表:行/@表:行号">
<xsl:for-each select="/uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/表:行[@表:行号=$row-no]">
<xsl:for-each select="表:单元格[@表:列号=$cell-no]">
<xsl:value-of select="表:数据/字:句/字:文本串"/>
</xsl:for-each>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="/uof:UOF/uof:电子表格/表:主体/表:工作表/表:工作表内容/表:行[position()=$row-no]">
<xsl:for-each select="表:单元格[position()=$cell-no]">
<xsl:value-of select="表:数据/字:句/字:文本串"/>
</xsl:for-each>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:attribute name="office:value"><xsl:value-of select="$cell-content"/></xsl:attribute>
<text:p>
<xsl:value-of select="$cell-content"/>
</text:p>
</table:table-cell>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="表:本地表_行_单元格">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="series-value-current" select="$series-value-current"/>
<xsl:with-param name="row-current" select="$row-current"/>
<xsl:with-param name="cell-sum" select="$cell-sum -1"/>
<xsl:with-param name="fixed-cell-sum" select="$fixed-cell-sum"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="表:数据组">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:variable name="input-char-start">
<xsl:choose>
<xsl:when test="$series-generate-type='row'">
<xsl:value-of select="substring(substring-after($series-value-start,'!'),1,1)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-before(substring(substring-after($series-value-start,'!'),2),':')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="input-char-end">
<xsl:choose>
<xsl:when test="$series-generate-type='row'">
<xsl:value-of select="substring(substring-after($series-value-start,':'),1,1)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring(substring-after($series-value-start,':'),2)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="cell-start">
<xsl:call-template name="General-Char-Transition">
<xsl:with-param name="input-char" select="$input-char-start"/>
<xsl:with-param name="output-type" select="'ARABIC'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="cell-end">
<xsl:call-template name="General-Char-Transition">
<xsl:with-param name="input-char" select="$input-char-end"/>
<xsl:with-param name="output-type" select="'ARABIC'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="fixed-cell-sum">
<xsl:value-of select="$cell-end -$cell-start +1"/>
</xsl:variable>
<xsl:for-each select="表:数据系列集/表:数据系列">
<chart:series>
<xsl:attribute name="chart:style-name"><xsl:value-of select="concat('data-series',position())"/></xsl:attribute>
<xsl:call-template name="表:数据点">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="data-series-current" select="position()"/>
<xsl:with-param name="cell-current" select="'1'"/>
<xsl:with-param name="fixed-cell-sum" select="$fixed-cell-sum"/>
</xsl:call-template>
</chart:series>
</xsl:for-each>
</xsl:template>
<xsl:template name="表:数据点">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:param name="data-series-current"/>
<xsl:param name="cell-current"/>
<xsl:param name="fixed-cell-sum"/>
<xsl:choose>
<xsl:when test="$cell-current>$fixed-cell-sum"/>
<xsl:otherwise>
<chart:data-point>
<xsl:attribute name="chart:style-name"><xsl:value-of select="concat('data-point',$data-series-current,$cell-current)"/></xsl:attribute>
</chart:data-point>
<xsl:call-template name="表:数据点">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="data-series-current" select="$data-series-current"/>
<xsl:with-param name="cell-current" select="$cell-current +1"/>
<xsl:with-param name="fixed-cell-sum" select="$fixed-cell-sum"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="表:图表区式样">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<style:style style:name="chart-area" style:family="chart">
<xsl:for-each select="node()">
<xsl:choose>
<xsl:when test="name(.)='表:边框'">
<style:graphic-properties>
<xsl:call-template name="uof:边框"/>
</style:graphic-properties>
</xsl:when>
<xsl:when test="name(.)='表:填充'">
<style:graphic-properties>
<xsl:call-template name="图:填充类型"/>
</style:graphic-properties>
</xsl:when>
<xsl:when test="name(.)='表:字体'">
<style:text-properties>
<xsl:call-template name="字:句属性类型"/>
</style:text-properties>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</style:style>
</xsl:template>
<xsl:template name="表:绘图区式样">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<style:style style:name="plot-area" style:family="chart">
<style:chart-properties>
<xsl:choose>
<xsl:when test="$table-subtype='bar_stacked' or $table-subtype='column_stacked' or $table-subtype='line_stacked'">
<xsl:attribute name="chart:stacked">true</xsl:attribute>
</xsl:when>
<xsl:when test="$table-subtype='bar_percent' or $table-subtype='column_percent' or $table-subtype='line_percent'">
<xsl:attribute name="chart:percentage">true</xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:attribute name="chart:vertical"><xsl:choose><xsl:when test="$table-type='bar'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:attribute name="chart:series-source"><xsl:choose><xsl:when test="$series-generate-type='row'">rows</xsl:when><xsl:otherwise>columns</xsl:otherwise></xsl:choose></xsl:attribute>
</style:chart-properties>
</style:style>
</xsl:template>
<xsl:template name="表:图表背景墙式样">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<style:style style:name="chart-wall" style:family="chart">
<style:graphic-properties>
<xsl:for-each select="node()">
<xsl:choose>
<xsl:when test="name(.)='表:边框'">
<xsl:call-template name="uof:边框"/>
</xsl:when>
<xsl:when test="name(.)='表:填充'">
<xsl:call-template name="图:填充类型"/>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</style:graphic-properties>
</style:style>
</xsl:template>
<xsl:template name="表:分类轴式样">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<style:style style:name="category-axis" style:family="chart">
<xsl:call-template name="表:坐标轴类型">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="axis-type" select="'category axis'"/>
</xsl:call-template>
</style:style>
</xsl:template>
<xsl:template name="表:数值轴式样">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<style:style style:name="value-axis" style:family="chart">
<xsl:call-template name="表:坐标轴类型">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="axis-type" select="'value axis'"/>
</xsl:call-template>
</style:style>
</xsl:template>
<xsl:template name="表:图例式样">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<style:style style:name="legend" style:family="chart">
<xsl:for-each select="node()">
<xsl:choose>
<xsl:when test="name(.)='表:边框'">
<style:graphic-properties>
<xsl:call-template name="uof:边框"/>
</style:graphic-properties>
</xsl:when>
<xsl:when test="name(.)='表:填充'">
<style:graphic-properties>
<xsl:call-template name="图:填充类型"/>
</style:graphic-properties>
</xsl:when>
<xsl:when test="name(.)='表:字体'">
<style:text-properties>
<xsl:call-template name="字:句属性类型"/>
</style:text-properties>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</style:style>
</xsl:template>
<xsl:template name="表:数据表式样">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<style:style style:name="data-table" style:family="chart">
<xsl:for-each select="node()">
<xsl:choose>
<xsl:when test="name(.)='表:边框'">
<style:graphic-properties>
<xsl:call-template name="uof:边框"/>
</style:graphic-properties>
</xsl:when>
<xsl:when test="name(.)='表:填充'">
<style:graphic-properties>
<xsl:call-template name="图:填充类型"/>
</style:graphic-properties>
</xsl:when>
<xsl:when test="name(.)='表:字体'">
<style:text-properties>
<xsl:call-template name="字:句属性类型"/>
</style:text-properties>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</style:style>
</xsl:template>
<xsl:template name="表:数据系列集式样">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:for-each select="表:数据系列">
<style:style style:family="chart">
<xsl:variable name="current-position" select="position()"/>
<xsl:attribute name="style:name"><xsl:value-of select="concat('data-series',$current-position)"/></xsl:attribute>
<xsl:call-template name="表:数据点类型">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="recall-type" select="'data-series'"/>
</xsl:call-template>
</style:style>
</xsl:for-each>
</xsl:template>
<xsl:template name="表:数据点集式样">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:for-each select="表:数据点">
<style:style style:family="chart">
<xsl:attribute name="style:name"><xsl:value-of select="concat('data-point',@表:系列,@表:点)"/></xsl:attribute>
<xsl:call-template name="表:数据点类型">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
<xsl:with-param name="recall-type" select="'data-point'"/>
</xsl:call-template>
</style:style>
</xsl:for-each>
</xsl:template>
<xsl:template name="表:网格线集式样">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:for-each select="表:网格线">
<xsl:choose>
<xsl:when test="@表:位置='category axis'">
<style:style style:name="category-axis-grid" style:family="chart">
<style:graphic-properties>
<xsl:call-template name="uof:边框"/>
</style:graphic-properties>
</style:style>
</xsl:when>
<xsl:when test="@表:位置='value axis'">
<style:style style:name="value-axis-grid" style:family="chart">
<style:graphic-properties>
<xsl:call-template name="uof:边框"/>
</style:graphic-properties>
</style:style>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template name="表:数据源式样">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:for-each select="表:系列">
<style:style style:family="chart">
<xsl:variable name="current-position" select="position()"/>
<xsl:attribute name="style:name"><xsl:value-of select="concat('data-source',$current-position)"/></xsl:attribute>
</style:style>
</xsl:for-each>
</xsl:template>
<xsl:template name="表:标题集式样">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:for-each select="表:标题">
<xsl:choose>
<xsl:when test="@表:位置='chart'">
<style:style style:name="chart-title" style:family="chart">
<xsl:call-template name="表:标题类型">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</style:style>
</xsl:when>
<xsl:when test="@表:位置='category axis'">
<style:style style:name="category-axis-title" style:family="chart">
<xsl:call-template name="表:标题类型">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</style:style>
</xsl:when>
<xsl:when test="@表:位置='value axis'">
<style:style style:name="value-axis-title" style:family="chart">
<xsl:call-template name="表:标题类型">
<xsl:with-param name="table-name" select="$table-name"/>
<xsl:with-param name="table-type" select="$table-type"/>
<xsl:with-param name="table-subtype" select="$table-subtype"/>
<xsl:with-param name="series-value-start" select="$series-value-start"/>
<xsl:with-param name="series-value-end" select="$series-value-end"/>
<xsl:with-param name="series-generate-type" select="$series-generate-type"/>
</xsl:call-template>
</style:style>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template name="表:坐标轴类型">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:param name="axis-type"/>
<style:chart-properties>
<xsl:choose>
<xsl:when test="@表:主刻度类型='cross'">
<xsl:attribute name="chart:tick-marks-major-inner">true</xsl:attribute>
<xsl:attribute name="chart:tick-marks-major-outer">true</xsl:attribute>
</xsl:when>
<xsl:when test="@表:主刻度类型='inside'">
<xsl:attribute name="chart:tick-marks-major-inner">true</xsl:attribute>
<xsl:attribute name="chart:tick-marks-major-outer">false</xsl:attribute>
</xsl:when>
<xsl:when test="@表:主刻度类型='outside'">
<xsl:attribute name="chart:tick-marks-major-inner">false</xsl:attribute>
<xsl:attribute name="chart:tick-marks-major-outer">true</xsl:attribute>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
<xsl:choose>
<xsl:when test="@表:次刻度类型='cross'">
<xsl:attribute name="chart:tick-marks-minor-inner">true</xsl:attribute>
<xsl:attribute name="chart:tick-marks-minor-outer">true</xsl:attribute>
</xsl:when>
<xsl:when test="@表:次刻度类型='inside'">
<xsl:attribute name="chart:tick-marks-minor-inner">true</xsl:attribute>
<xsl:attribute name="chart:tick-marks-minor-outer">false</xsl:attribute>
</xsl:when>
<xsl:when test="@表:次刻度类型='outside'">
<xsl:attribute name="chart:tick-marks-minor-inner">false</xsl:attribute>
<xsl:attribute name="chart:tick-marks-minor-outer">true</xsl:attribute>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
<xsl:if test="@表:刻度线标志='next to axis'">
<xsl:attribute name="chart:display-label">true</xsl:attribute>
</xsl:if>
<xsl:for-each select="node()">
<xsl:choose>
<xsl:when test="name(.)='表:线型'">
<xsl:call-template name="uof:线型"/>
</xsl:when>
<xsl:when test="name(.)='表:数值'">
<xsl:attribute name="chart:link-data-style-to-source"><xsl:value-of select="@表:链接到源"/></xsl:attribute>
</xsl:when>
<xsl:when test="name(.)='表:刻度'">
<xsl:call-template name="表:刻度类型"/>
</xsl:when>
<xsl:when test="name(.)='表:对齐'">
<xsl:if test="表:文字方向">
<xsl:attribute name="fo:direction"><xsl:value-of select="表:文字方向"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:旋转角度">
<xsl:attribute name="text:rotation-angle"><xsl:value-of select="表:旋转角度"/></xsl:attribute>
</xsl:if>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</style:chart-properties>
<xsl:if test="表:字体">
<xsl:for-each select="表:字体">
<xsl:element name="style:text-properties">
<xsl:call-template name="字:句属性类型"/>
</xsl:element>
</xsl:for-each>
</xsl:if>
</xsl:template>
<xsl:template name="表:数据点类型">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:param name="recall-type"/>
<xsl:if test="name(.)='表:数据点'">
<style:chart-properties>
<xsl:if test="$table-type='pie' and $table-subtype='pie_offset1' and @表:点='1'">
<xsl:attribute name="chart:pie-offset">10</xsl:attribute>
</xsl:if>
<xsl:if test="$table-type='pie' and $table-subtype='pie_offset2'">
<xsl:attribute name="chart:pie-offset">10</xsl:attribute>
</xsl:if>
</style:chart-properties>
</xsl:if>
<xsl:for-each select="node()">
<xsl:choose>
<xsl:when test="name(.)='表:边框'">
<style:graphic-properties>
<xsl:call-template name="uof:边框"/>
</style:graphic-properties>
</xsl:when>
<xsl:when test="name(.)='表:填充'">
<style:graphic-properties>
<xsl:call-template name="图:填充类型"/>
</style:graphic-properties>
</xsl:when>
<xsl:when test="name(.)='表:字体'">
<style:text-properties>
<xsl:call-template name="字:句属性类型"/>
</style:text-properties>
</xsl:when>
<xsl:when test="name(.)='表:显示标志'">
<style:chart-properties>
<xsl:if test="@表:类别名">
<xsl:attribute name="chart:data-label-text"><xsl:value-of select="@表:类别名"/></xsl:attribute>
</xsl:if>
<xsl:if test="@表:数值">
<xsl:attribute name="chart:data-label-number">value</xsl:attribute>
</xsl:if>
<xsl:if test="@表:百分数">
<xsl:attribute name="chart:data-label-number">percentage</xsl:attribute>
</xsl:if>
<xsl:if test="@表:图例标志">
<xsl:attribute name="chart:data-label-symbol"><xsl:value-of select="@表:图例标志"/></xsl:attribute>
</xsl:if>
</style:chart-properties>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template name="表:标题类型">
<xsl:param name="table-name"/>
<xsl:param name="table-type"/>
<xsl:param name="table-subtype"/>
<xsl:param name="series-value-start"/>
<xsl:param name="series-value-end"/>
<xsl:param name="series-generate-type"/>
<xsl:for-each select="node()">
<xsl:choose>
<xsl:when test="name(.)='表:边框'">
<style:graphic-properties>
<xsl:call-template name="uof:边框"/>
</style:graphic-properties>
</xsl:when>
<xsl:when test="name(.)='表:填充'">
<style:graphic-properties>
<xsl:call-template name="图:填充类型"/>
</style:graphic-properties>
</xsl:when>
<xsl:when test="name(.)='表:对齐'">
<style:chart-properties>
<xsl:call-template name="表:对齐格式类型"/>
</style:chart-properties>
</xsl:when>
<xsl:when test="name(.)='表:字体'">
<style:text-properties>
<xsl:call-template name="字:句属性类型"/>
</style:text-properties>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template name="uof:边框">
<xsl:if test="@uof:类型">
<xsl:variable name="type" select="@uof:类型"/>
<xsl:attribute name="draw:stroke"><xsl:choose><xsl:when test="@uof:类型='single'">solid</xsl:when><xsl:when test="@uof:类型='none'">none</xsl:when><xsl:otherwise>dash</xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:attribute name="draw:stroke-dash"><xsl:choose><xsl:when test="$type='dash'">Ultrafine_20_Dashed</xsl:when><xsl:when test="$type='dot-dash'">Ultrafine_20_2_20_Dots_20_3_20_Dashes</xsl:when><xsl:when test="$type='dashed-heavy'">Fine_20_Dashed</xsl:when><xsl:when test="$type='dotted' ">Fine_20_Dotted</xsl:when><xsl:when test="$type='dash-long-heavy'">Line_20_with_20_Fine_20_Dots</xsl:when><xsl:when test="$type='dash-long'">Fine_20_Dashed_20__28_var_29_</xsl:when><xsl:when test="$type='dash-dot-dot'">_33__20_Dashes_20_3_20_Dots_20__28_var_29_</xsl:when><xsl:when test="$type='dotted-heavy'">Ultrafine_20_Dotted_20__28_var_29_</xsl:when><xsl:when test="$type='thick'">Line_20_Style_20_9</xsl:when><xsl:when test="$type='dot-dot-dash'">_32__20_Dots_20_1_20_Dash</xsl:when><xsl:when test="$type='dash-dot-dot-heavy'">Dashed_20__28_var_29_</xsl:when><xsl:when test="$type='dash-dot-heavy'">Dash_20_10</xsl:when></xsl:choose></xsl:attribute>
</xsl:if>
<xsl:if test="@uof:宽度">
<xsl:attribute name="svg:stroke-width"><xsl:value-of select="concat(@uof:宽度,$uofUnit)"/></xsl:attribute>
</xsl:if>
<xsl:if test="@uof:颜色">
<xsl:attribute name="svg:stroke-color"><xsl:value-of select="@uof:颜色"/></xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template name="图:填充类型">
<xsl:if test="图:颜色">
<xsl:attribute name="draw:fill">solid</xsl:attribute>
<xsl:attribute name="draw:fill-color"><xsl:value-of select="图:颜色"/></xsl:attribute>
</xsl:if>
<xsl:if test="图:图片">
<xsl:attribute name="draw:fill">bitmap</xsl:attribute>
<xsl:attribute name="draw:fill-image-name"><xsl:value-of select="图:图片/@图:名称"/></xsl:attribute>
<xsl:if test="not(图:图片/@图:位置='tile')">
<xsl:attribute name="style:repeat"><xsl:choose><xsl:when test="图:图片/@图:位置='center'">no-repeat</xsl:when><xsl:when test="图:图片/@图:位置='stretch'">stretch</xsl:when></xsl:choose></xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="图:图案">
<xsl:attribute name="draw:fill">bitmap</xsl:attribute>
<xsl:attribute name="draw:fill-hatch-name"><xsl:value-of select="图:图案/@图:图形引用"/></xsl:attribute>
</xsl:if>
<xsl:if test="图:渐变">
<xsl:attribute name="draw:fill">gradient</xsl:attribute>
<xsl:attribute name="draw:fill-gradient-name"><xsl:value-of select="图:渐变/@图:图形引用"/></xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template name="uof:线型">
<xsl:call-template name="uof:边框"/>
</xsl:template>
<xsl:template name="字:句属性类型">
<xsl:apply-templates select="./*"/>
</xsl:template>
<xsl:template name="表:刻度类型">
<xsl:if test="表:最小值">
<xsl:attribute name="chart:minimum"><xsl:value-of select="表:最小值"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:最大值">
<xsl:attribute name="chart:maximum"><xsl:value-of select="表:最大值"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:主单位">
<xsl:attribute name="chart:interval-major"><xsl:value-of select="表:主单位"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:次单位">
<xsl:attribute name="chart:interval-minor"><xsl:value-of select="表:次单位"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:分类交叉点">
<xsl:attribute name="chart:origin"><xsl:value-of select="表:分类交叉点"/></xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template name="表:对齐格式类型">
<xsl:if test="表:文字方向">
<xsl:attribute name="style:direction"><xsl:value-of select="表:文字方向"/></xsl:attribute>
</xsl:if>
<xsl:if test="表:文字旋转角度">
<xsl:attribute name="style:rotation-angle"><xsl:value-of select="表:文字旋转角度"/></xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="字:字体">
<xsl:if test="@字:字号">
<xsl:attribute name="fo:font-size"><xsl:value-of select="@字:字号"/>pt</xsl:attribute>
<xsl:attribute name="style:font-size-asian"><xsl:value-of select="@字:字号"/>pt</xsl:attribute>
<xsl:attribute name="style:font-size-complex"><xsl:value-of select="@字:字号"/>pt</xsl:attribute>
</xsl:if>
<xsl:if test="@字:相对字号 and self::node( )[not(parent::字:句属性)]">
<xsl:variable name="stylename" select="parent::node()/@字:基式样引用"/>
<xsl:variable name="zihao">
<xsl:for-each select="/uof:UOF/uof:式样集//uof:段落式样[@字:标识符=$stylename]">
<xsl:value-of select="字:字体/@字:字号"/>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="font-size" select="@字:相对字号"/>
<xsl:attribute name="fo:font-size"><xsl:value-of select="($zihao * $font-size div 100)"/>pt</xsl:attribute>
<xsl:attribute name="style:font-size-asian"><xsl:value-of select="($zihao * $font-size div 100)"/>pt</xsl:attribute>
<xsl:attribute name="style:font-size-complex"><xsl:value-of select="($zihao * $font-size div 100)"/>pt</xsl:attribute>
</xsl:if>
<xsl:if test="@字:颜色">
<xsl:attribute name="fo:color"><xsl:value-of select="string(@字:颜色)"/></xsl:attribute>
</xsl:if>
<xsl:if test="@字:中文字体引用">
<xsl:attribute name="style:font-family-asian"><xsl:value-of select="@字:中文字体引用"/></xsl:attribute>
</xsl:if>
<xsl:if test="@字:西文字体引用">
<xsl:attribute name="fo:font-family"><xsl:value-of select="@字:西文字体引用"/></xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="字:斜体">
<xsl:if test="@字:值='true'">
<xsl:attribute name="fo:font-style">italic</xsl:attribute>
<xsl:attribute name="fo:font-style-asian">italic</xsl:attribute>
<xsl:attribute name="style:font-style-asian">italic</xsl:attribute>
<xsl:attribute name="style:font-style-complex">italic</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="字:粗体">
<xsl:if test="@字:值='true'">
<xsl:attribute name="fo:font-weight">bold</xsl:attribute>
<xsl:attribute name="style:font-weight-asian">bold</xsl:attribute>
<xsl:attribute name="style:font-weight-complex">bold</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="字:下划线">
<xsl:choose>
<xsl:when test="@字:类型 = 'single'">
<xsl:attribute name="style:text-underline-style">solid</xsl:attribute>
<xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'double'">
<xsl:attribute name="style:text-underline-style">solid</xsl:attribute>
<xsl:attribute name="style:text-underline-type">double</xsl:attribute>
<xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'thick'">
<xsl:attribute name="style:text-underline-style">solid</xsl:attribute>
<xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'dotted'">
<xsl:attribute name="style:text-underline-style">dotted</xsl:attribute>
<xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'dotted-heavy'">
<xsl:attribute name="style:text-underline-style">dotted</xsl:attribute>
<xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'dash'">
<xsl:attribute name="style:text-underline-style">dash</xsl:attribute>
<xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'dashed-heavy'">
<xsl:attribute name="style:text-underline-style">dash</xsl:attribute>
<xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'dash-long'">
<xsl:attribute name="style:text-underline-style">long-dash</xsl:attribute>
<xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'dash-long-heavy'">
<xsl:attribute name="style:text-underline-style">long-dash</xsl:attribute>
<xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'dot-dash'">
<xsl:attribute name="style:text-underline-style">dot-dash</xsl:attribute>
<xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'dash-dot-heavy'">
<xsl:attribute name="style:text-underline-style">dot-dash</xsl:attribute>
<xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'dot-dot-dash'">
<xsl:attribute name="style:text-underline-style">dot-dot-dash</xsl:attribute>
<xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'dash-dot-dot-heavy'">
<xsl:attribute name="style:text-underline-style">dot-dot-dash</xsl:attribute>
<xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'wave'">
<xsl:attribute name="style:text-underline-style">wave</xsl:attribute>
<xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'wavy-heavy'">
<xsl:attribute name="style:text-underline-style">wave</xsl:attribute>
<xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型 = 'wavy-double'">
<xsl:attribute name="style:text-underline-style">wave</xsl:attribute>
<xsl:attribute name="style:text-underline-type">double</xsl:attribute>
<xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
<xsl:choose>
<xsl:when test="@字:颜色">
<xsl:attribute name="style:text-underline-color"><xsl:choose><xsl:when test="@字:颜色='auto'">font-color</xsl:when><xsl:otherwise><xsl:value-of select="@字:颜色"/></xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style:text-underline-color">font-color</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="字:着重号">
<xsl:if test="not(@字:类型='none')">
<xsl:choose>
<xsl:when test="@字:类型='accent above' ">
<xsl:attribute name="style:text-emphasize">accent above</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型='dot above' ">
<xsl:attribute name="style:text-emphasize">dot above</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型='disc above' ">
<xsl:attribute name="style:text-emphasize">disc above</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型='circle above' ">
<xsl:attribute name="style:text-emphasize">circle above</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型='accent below' ">
<xsl:attribute name="style:text-emphasize">accent below</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型='dot below' ">
<xsl:attribute name="style:text-emphasize">dot below</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型='disc below' ">
<xsl:attribute name="style:text-emphasize">disc below</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型='circle below' ">
<xsl:attribute name="style:text-emphasize">circle below</xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:if>
<xsl:if test="字:颜色">
<xsl:attribute name="fo:color"><xsl:value-of select="@字:颜色"/></xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="字:隐藏文字">
<xsl:attribute name="text:display"><xsl:value-of select="@字:值"/></xsl:attribute>
</xsl:template>
<xsl:template match="字:空心">
<xsl:attribute name="style:text-outline"><xsl:value-of select="@字:值"/></xsl:attribute>
</xsl:template>
<xsl:template match="字:阴影">
<xsl:if test="not(@字:值='false')">
<xsl:attribute name="fo:text-shadow">1pt 1pt</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template match="字:删除线">
<xsl:attribute name="style:text-line-through-style">solid</xsl:attribute>
<xsl:choose>
<xsl:when test="@字:类型='double'">
<xsl:attribute name="style:text-line-through-type">double</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型='single'">
<xsl:attribute name="style:text-underline-mode">continuous</xsl:attribute>
<xsl:attribute name="style:text-line-through-mode">continuous</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型='bold'">
<xsl:attribute name="style:text-line-through-width">bold</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型='带/'">
<xsl:attribute name="style:text-line-through-text">/</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型='带X'">
<xsl:attribute name="style:text-line-through-text">X</xsl:attribute>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
<xsl:template match="@字:颜色[not(.='auto')]">
<xsl:attribute name="fo:color">#<xsl:value-of select="."/></xsl:attribute>
</xsl:template>
<xsl:template match="字:浮雕">
<xsl:attribute name="style:font-relief"><xsl:choose><xsl:when test="@字:类型='engrave'">engraved</xsl:when><xsl:when test="@字:类型='emboss'">embossed</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
</xsl:template>
<xsl:template match="字:醒目字体">
<xsl:choose>
<xsl:when test="@字:类型='small-caps'">
<xsl:attribute name="fo:font-variant">small-caps</xsl:attribute>
</xsl:when>
<xsl:when test="@字:类型='none'">
<xsl:attribute name="fo:font-variant">normal</xsl:attribute>
<xsl:attribute name="fo:text-transform">none</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="fo:text-transform"><xsl:choose><xsl:when test="@字:类型='uppercase'">uppercase</xsl:when><xsl:when test="@字:类型='lowercase'">lowercase</xsl:when><xsl:when test="@字:类型='capital'">capitalize</xsl:when></xsl:choose></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="字:位置">
<xsl:attribute name="style:text-position"><xsl:value-of select="."/></xsl:attribute>
</xsl:template>
<xsl:template match="字:缩放">
<xsl:attribute name="style:text-scale"><xsl:value-of select="."/></xsl:attribute>
</xsl:template>
<xsl:template match="字:字符间距">
<xsl:attribute name="fo:letter-spacing"><xsl:value-of select="."/></xsl:attribute>
</xsl:template>
<xsl:template match="字:调整字间距">
<xsl:attribute name="style:letter-kerning"><xsl:value-of select="."/></xsl:attribute>
</xsl:template>
<xsl:template match="字:外框">
<xsl:attribute name="style:text-outline">true</xsl:attribute>
</xsl:template>
<xsl:template match="字:缩放">
<xsl:attribute name="style:text-scale"><xsl:value-of select="."/></xsl:attribute>
</xsl:template>
<xsl:template match="字:字符间距[parent::字:句属性]">
<xsl:attribute name="fo:letter-spacing"><xsl:value-of select="concat( number(.)* $other-to-cm-conversion-factor, $uofUnit)"/></xsl:attribute>
</xsl:template>
<xsl:template name="General-Char-Transition">
<xsl:param name="input-char"/>
<xsl:param name="output-type"/>
<xsl:choose>
<xsl:when test="$input-char='A' or $input-char='a' or $input-char='1' or $input-char='Roman_I' or $input-char='Roman_i' or $input-char='一' or $input-char='壹' or $input-char='甲' or $input-char='子'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">1</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">a</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">A</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">I</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">i</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">1</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">1</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">1</xsl:when>
<xsl:when test="$output-type='TIAN_GAN_ZH'"></xsl:when>
<xsl:when test="$output-type='DI_ZI_ZH'"></xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='B' or $input-char='b' or $input-char='2' or $input-char='Roman_II' or $input-char='Roman_ii' or $input-char='二' or $input-char='贰' or $input-char='乙' or $input-char='丑'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">2</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">b</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">B</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">II</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">ii</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'"></xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">2</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">2</xsl:when>
<xsl:when test="$output-type='TIAN_GAN_ZH'"></xsl:when>
<xsl:when test="$output-type='DI_ZI_ZH'"></xsl:when>
<xsl:otherwise>2</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='C' or $input-char='c' or $input-char='3' or $input-char='Roman_III' or $input-char='Roman_iii' or $input-char='三' or $input-char='叁' or $input-char='丙' or $input-char='寅'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">3</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">c</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">C</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">III</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">iii</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'"></xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'"></xsl:when>
<xsl:when test="$output-type='TIAN_GAN_ZH'"></xsl:when>
<xsl:when test="$output-type='DI_ZI_ZH'"></xsl:when>
<xsl:otherwise>3</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='D' or $input-char='d' or $input-char='4' or $input-char='Roman_IV' or $input-char='Roman_iv' or $input-char='四' or $input-char='肆' or $input-char='丁' or $input-char='卯'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">4</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">d</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">D</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">IV</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">iv</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'"></xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">4</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">4</xsl:when>
<xsl:when test="$output-type='TIAN_GAN_ZH'"></xsl:when>
<xsl:when test="$output-type='DI_ZI_ZH'"></xsl:when>
<xsl:otherwise>4</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='E' or $input-char='e' or $input-char='5' or $input-char='Roman_V' or $input-char='Roman_v' or $input-char='五' or $input-char='伍' or $input-char='戊' or $input-char='辰'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">5</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">e</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">E</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">V</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">v</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">5</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">5</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">5</xsl:when>
<xsl:when test="$output-type='TIAN_GAN_ZH'"></xsl:when>
<xsl:when test="$output-type='DI_ZI_ZH'"></xsl:when>
<xsl:otherwise>5</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='F' or $input-char='f' or $input-char='6' or $input-char='Roman_VI' or $input-char='Roman_vi' or $input-char='六' or $input-char='陆' or $input-char='己' or $input-char='巳'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">6</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">f</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">F</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">VI</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">vi</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'"></xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'"></xsl:when>
<xsl:when test="$output-type='TIAN_GAN_ZH'"></xsl:when>
<xsl:when test="$output-type='DI_ZI_ZH'"></xsl:when>
<xsl:otherwise>6</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='G' or $input-char='g' or $input-char='7' or $input-char='' or $input-char='Roman_VII' or $input-char='Roman_vii' or $input-char='七' or $input-char='柒' or $input-char='庚' or $input-char='午'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">7</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">g</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">G</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">VII</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">vii</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'"></xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">7</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">7</xsl:when>
<xsl:when test="$output-type='TIAN_GAN_ZH'"></xsl:when>
<xsl:when test="$output-type='DI_ZI_ZH'"></xsl:when>
<xsl:otherwise>7</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='H' or $input-char='h' or $input-char='8' or $input-char='Roman_VIII' or $input-char='Roman_viii' or $input-char='八' or $input-char='捌' or $input-char='辛' or $input-char='未'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">8</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">h</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">H</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">VIII</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">viii</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'"></xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">8</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">8</xsl:when>
<xsl:when test="$output-type='TIAN_GAN_ZH'"></xsl:when>
<xsl:when test="$output-type='DI_ZI_ZH'"></xsl:when>
<xsl:otherwise>8</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='I' or $input-char='i' or $input-char='9' or $input-char='Roman_IX' or $input-char='Roman_ix' or $input-char='九' or $input-char='玖' or $input-char='壬' or $input-char='申'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">9</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">i</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">I</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">IX</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">ix</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'"></xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'"></xsl:when>
<xsl:when test="$output-type='TIAN_GAN_ZH'"></xsl:when>
<xsl:when test="$output-type='DI_ZI_ZH'"></xsl:when>
<xsl:otherwise>9</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='J' or $input-char='j' or $input-char='10' or $input-char='Roman_X' or $input-char='Roman_x' or $input-char='十' or $input-char='拾' or $input-char='癸' or $input-char='酉'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">10</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">j</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">J</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">X</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">x</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">10</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">10</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">10</xsl:when>
<xsl:when test="$output-type='TIAN_GAN_ZH'"></xsl:when>
<xsl:when test="$output-type='DI_ZI_ZH'"></xsl:when>
<xsl:otherwise>10</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='K' or $input-char='k' or $input-char='11' or $input-char='Roman_XI' or $input-char='Roman_xi' or $input-char='十一' or $input-char='拾壹' or $input-char='戌'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">11</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">k</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">K</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XI</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xi</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'"></xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">11</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">11</xsl:when>
<xsl:when test="$output-type='DI_ZI_ZH'"></xsl:when>
<xsl:otherwise>11</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='L' or $input-char='l' or $input-char='12' or $input-char='Roman_XII' or $input-char='Roman_xii' or $input-char='十二' or $input-char='拾贰' or $input-char='亥'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">12</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">l</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">L</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XII</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xii</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">12</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">12</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">12</xsl:when>
<xsl:when test="$output-type='DI_ZI_ZH'"></xsl:when>
<xsl:otherwise>12</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='M' or $input-char='m' or $input-char='13' or $input-char='Roman_XIII' or $input-char='Roman_xiii' or $input-char='十三' or $input-char='拾叁'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">13</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">m</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">M</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XIII</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xiii</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">13</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">13</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">13</xsl:when>
<xsl:otherwise>13</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='N' or $input-char='n' or $input-char='14' or $input-char='Roman_XIV' or $input-char='Roman_xiv' or $input-char='十四' or $input-char='拾肆'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">14</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">n</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">N</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XIV</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xiv</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">14</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">14</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">14</xsl:when>
<xsl:otherwise>14</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='O' or $input-char='o' or $input-char='15' or $input-char='Roman_XV' or $input-char='Roman_xv' or $input-char='十五' or $input-char='拾伍'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">15</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">o</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">O</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XV</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xv</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">15</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">15</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">15</xsl:when>
<xsl:otherwise>15</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='P' or $input-char='p' or $input-char='16' or $input-char='Roman_XVI' or $input-char='Roman_xvi' or $input-char='十六' or $input-char='拾陆'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">16</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">p</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">P</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XVI</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xvi</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">16</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">16</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">16</xsl:when>
<xsl:otherwise>16</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='Q' or $input-char='q' or $input-char='17' or $input-char='Roman_XVII' or $input-char='Roman_xvii' or $input-char='十七' or $input-char='拾柒'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">17</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">q</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">Q</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XVII</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xvii</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">17</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">17</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">17</xsl:when>
<xsl:otherwise>17</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='R' or $input-char='r' or $input-char='18' or $input-char='Roman_XVIII' or $input-char='Roman_xviii' or $input-char='十八' or $input-char='拾捌'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">18</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">r</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">R</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XVIII</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xviii</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">18</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">18</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">18</xsl:when>
<xsl:otherwise>18</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='S' or $input-char='s' or $input-char='19' or $input-char='Roman_XIX' or $input-char='Roman_xix' or $input-char='十九' or $input-char='拾玖'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">19</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">s</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">S</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XIX</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xix</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">19</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">19</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">19</xsl:when>
<xsl:otherwise>19</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='T' or $input-char='t' or $input-char='20' or $input-char='Roman_XX' or $input-char='Roman_xx' or $input-char='二十' or $input-char='贰拾'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">20</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">t</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">T</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XX</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xx</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">20</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">20</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">20</xsl:when>
<xsl:otherwise>20</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='U' or $input-char='u' or $input-char='21' or $input-char='Roman_XXI' or $input-char='Roman_xxi' or $input-char='二十一' or $input-char='贰拾壹'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">21</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">u</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">U</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XXI</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xxi</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">21</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">21</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">21</xsl:when>
<xsl:otherwise>21</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='V' or $input-char='v' or $input-char='22' or $input-char='Roman_XXII' or $input-char='Roman_xxii' or $input-char='二十二' or $input-char='贰拾贰'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">22</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">v</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">V</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XXII</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xxii</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">22</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">22</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">22</xsl:when>
<xsl:otherwise>22</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='W' or $input-char='w' or $input-char='23' or $input-char='Roman_XXIII' or $input-char='Roman_xxiii' or $input-char='二十三' or $input-char='贰拾叁'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">23</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">w</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">W</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XXIII</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xxiii</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">23</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">23</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">23</xsl:when>
<xsl:otherwise>23</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='X' or $input-char='x' or $input-char='24' or $input-char='Roman_XXIV' or $input-char='Roman_xxiv' or $input-char='二十四' or $input-char='贰拾肆'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">24</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">x</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">X</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XXIV</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xxiv</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">24</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">24</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">24</xsl:when>
<xsl:otherwise>24</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='Y' or $input-char='y' or $input-char='25' or $input-char='Roman_XXV' or $input-char='Roman_xxv' or $input-char='二十五' or $input-char='贰拾伍'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">25</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">y</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">Y</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XXV</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xxv</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">25</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">25</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">25</xsl:when>
<xsl:otherwise>25</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="$input-char='Z' or $input-char='z' or $input-char='26' or $input-char='Roman_XXVI' or $input-char='Roman_xxvi' or $input-char='二十六' or $input-char='贰拾陆'">
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">26</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">z</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">Z</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">XXVI</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">xxvi</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">26</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">26</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">26</xsl:when>
<xsl:otherwise>26</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="$output-type='ARABIC'">1</xsl:when>
<xsl:when test="$output-type='CHARS_LOWER_LETTER'">a</xsl:when>
<xsl:when test="$output-type='CHARS_UPPER_LETTER'">A</xsl:when>
<xsl:when test="$output-type='ROMAN_UPPER'">I</xsl:when>
<xsl:when test="$output-type='ROMAN_LOWER'">i</xsl:when>
<xsl:when test="$output-type='FULLWIDTH_ARABIC'">1</xsl:when>
<xsl:when test="$output-type='NUMBER_LOWER_ZH'"></xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">1</xsl:when>
<xsl:when test="$output-type='NUMBER_UPPER_ZH'"></xsl:when>
<xsl:when test="$output-type='CIRCLE_NUMBER'">1</xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--RedOffice comment (Zengjh) end charts-->
<!-- 线16 -->
<xsl:template name="transform-hex-to-decimal">
<xsl:param name="number"/>
<xsl:variable name="R-color-number">
<xsl:call-template name="color-hex-to-decimal">
<xsl:with-param name="chars" select="substring($number,2,2)"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="G-color-number">
<xsl:call-template name="color-hex-to-decimal">
<xsl:with-param name="chars" select="substring($number,4,2)"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="B-color-number">
<xsl:call-template name="color-hex-to-decimal">
<xsl:with-param name="chars" select="substring($number,6,2)"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$R-color-number * 65536 + $G-color-number * 256 + $B-color-number"/>
</xsl:template>
<!-- RGB-->
<xsl:template name="color-hex-to-decimal">
<xsl:param name="chars"/>
<xsl:variable name="first-num">
<xsl:call-template name="hex-to-decimal">
<xsl:with-param name="char" select="substring($chars,1,1)"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="second-num">
<xsl:call-template name="hex-to-decimal">
<xsl:with-param name="char" select="substring($chars,2,1)"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$first-num *16 + $second-num"/>
</xsl:template>
<xsl:template name="hex-to-decimal">
<xsl:param name="char"/>
<xsl:choose>
<xsl:when test="$char='0'">0</xsl:when>
<xsl:when test="$char='1'">1</xsl:when>
<xsl:when test="$char='2'">2</xsl:when>
<xsl:when test="$char='3'">3</xsl:when>
<xsl:when test="$char='4'">4</xsl:when>
<xsl:when test="$char='5'">5</xsl:when>
<xsl:when test="$char='6'">6</xsl:when>
<xsl:when test="$char='7'">7</xsl:when>
<xsl:when test="$char='8'">8</xsl:when>
<xsl:when test="$char='9'">9</xsl:when>
<xsl:when test="$char='a'">10</xsl:when>
<xsl:when test="$char='b'">11</xsl:when>
<xsl:when test="$char='c'">12</xsl:when>
<xsl:when test="$char='d'">13</xsl:when>
<xsl:when test="$char='e'">14</xsl:when>
<xsl:when test="$char='f'">15</xsl:when>
</xsl:choose>
</xsl:template>
<!-- end -->
<!--ro000179 chenjh-->
<xsl:template name="search-left-top-in-tables">
<xsl:param name="cellstylename"/>
<xsl:param name="tableslist"/>
<xsl:param name="return"/>
<xsl:choose>
<xsl:when test="$tableslist and $return=''">
<xsl:variable name="firsttablerows" select="$tableslist[1]//表:行"/>
<xsl:variable name="first-left-top">
<xsl:call-template name="search-left-top-inatable">
<xsl:with-param name="row-num" select="'1'"/>
<xsl:with-param name="firsttablerows" select="$firsttablerows"/>
<xsl:with-param name="cellstylename" select="$cellstylename"/>
<xsl:with-param name="return" select="''"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="rest-left-top">
<xsl:call-template name="search-left-top-in-tables">
<xsl:with-param name="cellstylename" select="$cellstylename"/>
<xsl:with-param name="tableslist" select="$tableslist[position()!=1]"/>
<xsl:with-param name="return" select="$first-left-top"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="$first-left-top!=''">
<xsl:value-of select="$first-left-top"/>
</xsl:when>
<xsl:when test="$rest-left-top!=''">
<xsl:value-of select="$rest-left-top"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="''"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$return"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- table-->
<xsl:template name="search-left-top-inatable">
<xsl:param name="row-num"/>
<xsl:param name="firsttablerows"/>
<xsl:param name="cellstylename"/>
<xsl:param name="return"/>
<xsl:choose>
<xsl:when test="$firsttablerows and $return=''">
<xsl:variable name="firstcells" select="$firsttablerows[1]/表:单元格"/>
<xsl:variable name="first-left-top">
<xsl:call-template name="search-left-top-inarow">
<xsl:with-param name="row-num" select="$row-num"/>
<xsl:with-param name="firstcells" select="$firstcells"/>
<xsl:with-param name="cellstylename" select="$cellstylename"/>
<xsl:with-param name="return" select="''"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="row-num-p">
<xsl:choose>
<xsl:when test="$firsttablerows[1]/@表:跨度">
<xsl:value-of select="$row-num+ $firsttablerows[1]/@表:跨度"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$row-num+1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="rest-left-top">
<xsl:call-template name="search-left-top-inatable">
<xsl:with-param name="row-num" select="$row-num-p"/>
<xsl:with-param name="firsttablerows" select="$firsttablerows[position()!=1]"/>
<xsl:with-param name="cellstylename" select="$cellstylename"/>
<xsl:with-param name="return" select="$first-left-top"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="$first-left-top!=''">
<xsl:value-of select="$first-left-top"/>
</xsl:when>
<xsl:when test="$rest-left-top !=''">
<xsl:value-of select="$rest-left-top "/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="''"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$return"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- -->
<xsl:template name="search-left-top-inarow">
<xsl:param name="row-num"/>
<xsl:param name="firstcells"/>
<xsl:param name="cellstylename"/>
<xsl:param name="return"/>
<xsl:choose>
<xsl:when test="$firstcells and $return=''">
<xsl:variable name="firstcell" select="$firstcells[1]"/>
<xsl:variable name="first-left-top">
<xsl:call-template name="search-left-top-inacell">
<xsl:with-param name="row-num" select="$row-num"/>
<xsl:with-param name="cell" select="$firstcell"/>
<xsl:with-param name="cellstylename" select="$cellstylename"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="rest-left-top">
<xsl:call-template name="search-left-top-inarow">
<xsl:with-param name="row-num" select="$row-num"/>
<xsl:with-param name="firstcells" select="$firstcells[position()!=1]"/>
<xsl:with-param name="cellstylename" select="$cellstylename"/>
<xsl:with-param name="return" select="$first-left-top"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="$first-left-top!=''">
<xsl:value-of select="$first-left-top"/>
</xsl:when>
<xsl:when test="$rest-left-top !=''">
<xsl:value-of select="$rest-left-top "/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="''"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$return"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- cell -->
<xsl:template name="search-left-top-inacell">
<xsl:param name="row-num"/>
<xsl:param name="cell"/>
<xsl:param name="cellstylename"/>
<xsl:choose>
<xsl:when test="$cell/@表:式样引用=$cellstylename">
<xsl:value-of select="concat($cell/ancestor::表:工作表/@表:名称,'.',$cell/@表:列号,' ',$row-num)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="''"/>
<!-- <xsl:variable name="style-is-default">
<xsl:call-template name="is-default-or-not-condition-format">
<xsl:with-param name="column-num" select="$cell/@表:列号"/>
<xsl:with-param name="cell" select="$cell"/>
<xsl:with-param name="preceding-cellstylename" select="''"/>
<xsl:with-param name="temp-num" select="'0'"/>
<xsl:with-param name="cellstylename" select="$cellstylename"/>
<xsl:with-param name="table-columns" select="$cell/ancestor::表:工作表内容//表:列"/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="$style-is-default='yes' ">
<xsl:value-of select="concat($cell/ancestor::表:工作表/@表:名称,'.',$cell/@表:列号,' ',$row-num)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="''"/>
</xsl:otherwise>
</xsl:choose> -->
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="translate-left-top">
<xsl:param name="left-top"/>
<xsl:if test="$left-top!=''">
<xsl:variable name="column-number" select="substring-before(substring-after($left-top,'.'),' ')"/>
<xsl:variable name="column-number1">
<xsl:value-of select="floor( $column-number div 26 )"/>
</xsl:variable>
<xsl:variable name="column-number2">
<xsl:value-of select="$column-number mod 26"/>
</xsl:variable>
<xsl:variable name="column-character1">
<xsl:call-template name="number-to-character">
<xsl:with-param name="number" select="$column-number1"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="column-character2">
<xsl:call-template name="number-to-character">
<xsl:with-param name="number" select="$column-number2"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="concat(substring-before($left-top,'.'),'.',$column-character1,$column-character2,substring-after($left-top,' '))"/>
</xsl:if>
</xsl:template>
<xsl:template name="create-the-condition-format-map">
<xsl:param name="condition-format-set"/>
<xsl:param name="current-left-top"/>
<xsl:if test="$condition-format-set">
<xsl:choose>
<xsl:when test="contains($condition-format-set[1]/表:区域/text(),$current-left-top)">
<xsl:for-each select="$condition-format-set[1]/表:条件">
<xsl:variable name="condition-text">
<xsl:choose>
<xsl:when test="@表:类型='cell value'">
<xsl:choose>
<xsl:when test="表:操作码/text()='between' ">
<xsl:value-of select="concat('cell-content-is-between','(',表:第一操作数/text(),',',表:第二操作数/text(),')')"/>
</xsl:when>
<xsl:when test=" 表:操作码/text()='not between'">
<xsl:value-of select="concat('cell-content-is-not-between','(',表:第一操作数/text(),',',表:第二操作数/text(),')')"/>
</xsl:when>
<xsl:when test="表:操作码/text()='equal to'">
<xsl:value-of select="concat('cell-content()=',表:第一操作数/text())"/>
</xsl:when>
<xsl:when test="表:操作码/text()='not equal to'">
<xsl:value-of select="concat('cell-content()!=',表:第一操作数/text())"/>
</xsl:when>
<xsl:when test="表:操作码/text()='greater than'">
<xsl:value-of select="concat('cell-content()&gt;',表:第一操作数/text())"/>
</xsl:when>
<xsl:when test="表:操作码/text()='less than'">
<xsl:value-of select="concat('cell-content()&lt;',表:第一操作数/text())"/>
</xsl:when>
<xsl:when test="表:操作码/text()='greater than or equal to'">
<xsl:value-of select="concat('cell-content()&gt;=',表:第一操作数/text())"/>
</xsl:when>
<xsl:when test="表:操作码/text()='less than or equal to'">
<xsl:value-of select="concat('cell-content()&lt;=',表:第一操作数/text())"/>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="@表:类型='formula'">
<xsl:value-of select="concat('is-true-formula','(',表:第一操作数/text(),')')"/>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:element name="style:map">
<xsl:attribute name="style:condition"><xsl:value-of select="$condition-text"/></xsl:attribute>
<xsl:attribute name="style:apply-style-name"><xsl:value-of select="//uof:单元格式样[@表:标识符=current()/表:格式/@表:式样引用]/@表:名称"/></xsl:attribute>
<xsl:attribute name="style:base-cell-address"><xsl:value-of select="substring-after($condition-format-set[1]/表:区域/text(),':')"/></xsl:attribute>
</xsl:element>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="create-the-condition-format-map">
<xsl:with-param name="condition-format-set" select="$condition-format-set[position()!=1]"/>
<xsl:with-param name="current-left-top" select="$current-left-top"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<!--ro000179 end-->
</xsl:stylesheet>