我有XML格式的Excel格式的xls文件(http://www.microsoft.com/en-us/download/confirmation.aspx?id=101),如何使用xslt转换为HTML或如何生成xslt文件到Excel?如何将Excel XML转换为使用xslt的HTML?
0
A
回答
0
XSLT
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:element name="style">
<xsl:for-each select="ss:Workbook/ss:Styles/ss:Style">
#<xsl:value-of select="@ss:ID"/>
{
<xsl:if test="ss:Alignment/@ss:Horizontal">
text-align: <xsl:value-of select="ss:Alignment/@ss:Horizontal"/>;
</xsl:if>
<xsl:if test="ss:Alignment/@ss:Vertical">
vertical-align: <xsl:value-of select="ss:Alignment/@ss:Vertical"/>;
</xsl:if>
<xsl:if test="ss:Alignment/@ss:Vertical">
vertical-align: <xsl:value-of select="ss:Alignment/@ss:Vertical"/>;
</xsl:if>
<xsl:if test="ss:Font/@ss:Bold=1">
font-weight: bold;
</xsl:if>
<xsl:if test="ss:Font/@ss:Color">
color:<xsl:value-of select="ss:Font/@ss:Color"/>;
</xsl:if>
<xsl:if test="ss:Font/@ss:StrikeThrough=1">
text-decoration:line-through
</xsl:if>
<xsl:if test="ss:Font/@ss:Underline='Single'">
text-decoration:underline
</xsl:if>
<xsl:if test="ss:Interior/@ss:Color">
background-color:<xsl:value-of select="ss:Interior/@ss:Color"/>;
</xsl:if>
<xsl:for-each select="ss:Borders/ss:Border">
<xsl:if test="@ss:Color">
border-<xsl:value-of select="@ss:Position"/>-color:<xsl:value-of select="@ss:Color"/>;
</xsl:if>
<xsl:if test="@ss:Weight">
border-<xsl:value-of select="@ss:Position"/>-width:<xsl:value-of select="@ss:Weight"/>px;
</xsl:if>
<xsl:if test="@ss:LineStyle">
border-<xsl:value-of select="@ss:Position"/>-style:<xsl:value-of select="@ss:LineStyle"/>;
</xsl:if>
</xsl:for-each>
}
</xsl:for-each>
</xsl:element>
<xsl:element name="table">
<xsl:for-each select="ss:Workbook/ss:Worksheet/ss:Table/ss:Row">
<xsl:element name="tr">
<xsl:for-each select="ss:Cell">
<xsl:element name="td">
<xsl:attribute name="id">
<xsl:value-of select="@ss:StyleID"/>
</xsl:attribute>
<xsl:if test="@ss:MergeAcross">
<xsl:attribute name="colspan">
<xsl:value-of select="@ss:MergeAcross+1"/>
</xsl:attribute>
</xsl:if>
<xsl:value-of select="ss:Data"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
0
您不能使用XSLT从EXCEL生成HTML。您必须先将Excel数据转换为XML格式,然后使用XSLT生成HTML。
要从EXCEL获得XML,您可以使用Java:http://jexcelapi.sourceforge.net/ 我相信它也可以在其他编程语言中使用。
你可以使用下面的Java代码,然后到你的EXCEL转换成XML:
public static void convertXLS() {
File file = new File("C:/tesco_invoices_zwe02.xls");
Workbook wb;
try {
wb = Workbook.getWorkbook(file);
String xmldata = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n"
+ "<ns0:" + "bla" + " " + "xmlns:ns0=\"" + "bla" + "\">";
Cell[] cells;
Cell[] cellNames;
cellNames = wb.getSheet(0).getRow(0);
for (int j = 1; j < wb.getSheet(0).getRows(); j++) {
xmldata = xmldata + "<Recordset>";
cells = wb.getSheet(0).getRow(j);
for (int i = 0; i < wb.getSheet(0).getColumns(); i++) {
String cellcontent = cells[i].getContents();
String cellcontent2 = cellcontent.trim();
xmldata = xmldata
+ "<"+ cellNames[i].getContents()+ ">"+ cellcontent2 + "</" + cellNames[i].getContents() + ">" + "\n";
}
xmldata = xmldata + "</Recordset>";
}
xmldata = xmldata + "</ns0:" + "bla" + ">";
wb.close();
System.out.println(xmldata);
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
最佳regarsd, 彼得
+0
我相信问题是指Excel电子表格XML,这是Microsoft Excel在保存电子表格时可以保存的格式。因为它是XML,所以在其上运行XSLT是完全可行的,尽管它可能不一定是简单的XSLT。 –
+0
你好,蒂姆,你是对的。我误解了希望以EXCEL格式* .xls格式存在数据的问题。 OP应该给我们一个他的输入和期望输出的例子。 – Peter
相关问题
- 1. 使用xslt将xml转换为html
- 2. 使用XSLT将XML转换为HTML表
- 3. 使用XSLT将XML转换为HTML
- 4. Perl使用XSLT将XML转换为HTML
- 5. xslt将xml转换为html
- 6. 如何使用PHP中的XSLT将XML文件转换为HTML?
- 7. 如何使用C#中的XSLT将XML转换为HTML?
- 8. 如何使用XSLT将HTML的视图源转换为XML?
- 9. 如何使用XSLT将C#中的XML转换为HTML?
- 10. 将XML转换为HTML并使用xslt将行交换为列
- 11. XML转换为HTML使用XSLT
- 12. DIDL XML转换为HTML使用XSLT
- 13. 如何使用XSLT将此XML转换为HTML ..?
- 14. 如何使用XSLT..PART-2将此XML转换为HTML?
- 15. 将HTML转换为XML的XSLT
- 16. 使用XSLT将xml转换为xml
- 17. 使用XSLT将XML转换为XML php
- 18. 将HTML转换为HTML:使用XSLT?
- 19. 需要使用saxon将html转换为使用xslt的xml
- 20. 通过xslt将XML转换为HTML
- 21. XSLT将XML模式转换为HTML
- 22. 防止xslt将xml转换为html
- 23. 如何使用C#函数将XML转换为XSLT转换
- 24. 使用XSLT xml样式表位置将Java XML转换为HTML
- 25. 如何将html作为xml用于XSLT转换用法?
- 26. 如何使用XSLT将XML转换为无效的XML?
- 27. XSLT 1.0:XML到XML的转换 - 如何将Unicode转换为HTML实体?
- 28. 使用XSLT将XML转换为CSV
- 29. 使用XSLT将XML转换为CSV
- 30. 使用XSLT将JSON转换为XML
如果您正在寻找对于与任何文件一起工作的单个XSLT,我担心这可能会非常复杂。但是,如果您在某些情况下只需要它,这可能是可能的,但您至少需要编辑您的问题以显示Excel XML样本以及您希望输出的HTML样本。谢谢! –