所以我想在excel XSLT中添加一些样式。逻辑工作正常,但当我尝试添加样式时给出错误,如
Excel错误: 在加载期间出现以下问题: 表
错误列于: C:\ Users \用户UNAME \ appdat \微软\的Windows \ temporaryInternetFiles \ content.MSO \ xxxxxxxx.log
我的代码是:
<?xml version="1.0" encoding="UTF-8"?>
<?mso-application progid="Excel.Sheet"?>
<xsl:stylesheet
xmlns:ns="urn:control.services........"
xmlns:m="urn:messages........."
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s62">
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="12" ss:Color="#000000" ss:Bold="1"/>
<Interior ss:Color="#79DCFF"/>
</Style>
</Styles>
<xsl:output indent="yes"/>
<xsl:variable name="header" select="distinct-values(/ns:ServiceRequest/m:ItemRequest/ns:ServiceRequest/m:*/m:*/local-name())"/>
<xsl:variable name="fields" select="distinct-values(/ns:ServiceRequest/m:ItemRequest/ns:ServiceRequest/m:*/m:*/name())"/>
<xsl:template match="/">
<ss:Workbook>
<ss:Worksheet ss:Name="SomeData">
<ss:Table>
<xsl:for-each select="($header)">
<ss:Column ss:Width="160"/>
</xsl:for-each>
<ss:Row>
<xsl:for-each select="($header)">
<ss:Cell ss:ID="s62">
<ss:Data ss:Type="String">
<xsl:value-of select="."/>
</ss:Data>
</ss:Cell>
</xsl:for-each>
</ss:Row>
<xsl:apply-templates select="ns:ServiceRequest/m:ItemRequest/ns:ServiceRequest/m:*"/>
</ss:Table>
</ss:Worksheet>
</ss:Workbook>
</xsl:template>
<xsl:template match="m:*">
<xsl:variable name="data" select="."/>
<ss:Row>
<xsl:for-each select="$fields">
<ss:Cell>
<ss:Data ss:Type="String">
<xsl:value-of select="$data/*[name()=current()]/text()"/>
</ss:Data>
</ss:Cell>
</xsl:for-each>
</ss:Row>
</xsl:template>
</xsl:stylesheet>
我实际上想要加粗标题的字体,保留边框并为标题提供背景颜色。
答案 0 :(得分:0)
XSLT中有2个错误:
您的<Styles>
不在任何模板之内,根本不会出现在输出文档中。他们需要在工作簿中。
单元格没有ss:ID
属性,只有Style具有ss:ID,用于引用样式使用ss:StyleID="s62"
。
查看 c:\ Users \ uname \ appdat \ microsoft \ windows \ temporaryInternetFiles \ content.MSO \ xxxxxxxx.log (您无法浏览到该位置,该文件夹已隐藏,因此请将该路径复制到资源管理器地址栏或“&#34;运行&#34;窗口”),它会为您提供更多信息,例如:
XML ERROR in Table
REASON: Illegal Tag
FILE: C:\temp\Untitled15.xls
GROUP: Row
TAG: Cell
ATTRIB: ID
VALUE: s62
办公室抛出了臭名昭着的错误消息,但是查看结果文档通常会给你一些线索。