Tag: xslt

Excel电子表格与XML

我使用XML方法为报表创buildExcel电子表格,您可以在其中导出有效的Microsoft格式的XML,然后将其导出到Excel。 到目前为止,所有的东西都是应该的,但是我在颜色方面遇到了一些麻烦。 我创build了一个样式,如: <Style ss:ID="s64" ss:Parent="s25"> <Font ss:FontName="Tahoma" x:Family="Swiss" ss:Size="14" ss:Color="#4579B9" ss:Bold="1"/> <Interior/> </Style> 它应该使用的颜色,应该看起来像但在这个图像的顶部: 替代文字http://img535.imageshack.us/img535/431/righty.jpg 但是,它使用底部的颜色。 当我生成报告时,它生成的颜色代码是#4579B9,这是我想要的,但是当我打开它时,它显示的颜色是从图像底部的颜色。 如果我然后保存文档,它会自动将颜色更改为#666699,这正是底部的颜色(错误的颜色)。 然而,这只会发生在字体颜色,就像我改变任何单元格的背景颜色为#4579B9,它将正常工作。 我认为这与select的颜色是“主题颜色”的一部分而不是“标准颜色”有关。 有没有人有任何经验产生这种报告,并正确地应用样式? 还是我错过了什么?

使用spreadsheetml打包文本的样式

我用xslt生成电子表格,并希望包装文本的单元格(或更好:带有换行符的文本)。 所以我的xslt为sheetdata生成以下XML: <sheetData> <row r="1"> <cr="A1" t="inlineStr"> <is> <t> a simple string line break jeeeehaaa </t> </is> </c> </row> </sheetData> 完成我的工作簿之后,我在Excel中打开它; 而且没有换行符,只是A1中一个简单的单行string。 有没有人有这个解决scheme? 不必在xml或xslt(但会很好)。 我也可以在c#中做一些事情

有可能用基于XML的图表生成Excel文件?

我有一个很大的问题,试图find一些图书馆来帮助我在我的项目中生成附带图表的Excel文件,我认为这是一个更好的select,使用XML文件来实现这个任务,但我找不到任何示例或指南为一个excel文件形成一个XML或XSL的图表,所以任何帮助或不同的build议来解决这个问题,是值得欢迎的。

Excel“从XML数据导入”不会添加新的列

Excel 2010在Data->“From Other Sources” – >“From XML Data Import”下有一个非常棒的function,可以从Web服务中提取XML,不需要编码。 很好,但我的服务现在在最后添加了一个新的列。 在Excel中刷新连接不会添加新列。 事实上,在同一电子表格中创build第二个连接到完全相同的URL将不会显示新的列(尽pipe在不同的Excel工作簿上做同样的事情)。 显然,Excel以某种方式caching列。 我发现这个链接描述了一个可能的解决办法,手动黑客的Excel文件; 但那是3年前的事了 当然,现在有更好的办法。 有什么build议? 您可以通过将以下XML保存为文本文件,将其导入Excel,然后编辑该文件并添加新列来复制该文件。 <Table> <Row> <First>1</First> <Second>2</Second> </Row> <Row> <First>3</First> <Second>4</Second> </Row> </Table>

导入到Excel之前,在XML上应用XSLT

我有一个XSLT模板,可以应用到XML文件的数据。 该模板生成一个Excel电子表格XML文件。 一切都很好,除了一个小问题…. 当我在Excel中打开电子表格时,会将其视为XML导入,并询问是否应该应用样式表。 我想拥有它,所以它会自动应用与该文件关联的任何XSLT模板。 下面是一些示例代码….在此先感谢…. XML文档… <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="spreadstyle.xsl"?> <ResponseBody> <ActivityDetails> <ActivityDetail> <TranCodeDesc>LateChargeAssessment</TranCodeDesc> </ActivityDetail> </ActivityDetails> </ResponseBody> XSLT模板… <?xml version="1.0"?> <?mso-application progid="Excel.Sheet"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> <Author>tbarbedo</Author> <Created>2009-05-29T18:21:48Z</Created> <Version>12.00</Version> </DocumentProperties> <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> <WindowHeight>8895</WindowHeight> <WindowWidth>18015</WindowWidth> <WindowTopX>0</WindowTopX> <WindowTopY>105</WindowTopY> <ProtectStructure>False</ProtectStructure> <ProtectWindows>False</ProtectWindows> </ExcelWorkbook> <Styles> <Style ss:ID="Default" ss:Name="Normal"> <Alignment […]

在xsl变换之后,将<?xml version =“1.0”?>添加到xml文件的顶部

我已经成功地使用xsl模板将具有数据的简单xml文件转换为另一个xml文件(excel模板),这就是我的xsl文件的样子: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" standalone="yes"/> <xsl:template match="/"> <xsl:processing-instruction name="mso-application"> <xsl:text>progid="Excel.Sheet"</xsl:text> </xsl:processing-instruction> …(stuff here)… </xsl:template> </xsl:stylesheet> 生成的xml文件写出正确,但包括除外 <?xml version="1.0"?> 在文件的顶部。 我怎样才能让它出现在顶部? 目前我的结果XML文件开始于: <?mso-application progid="Excel.Sheet"?> …(rest of file)… 但是我需要做的是: <?xml version="1.0"?> <?mso-application progid="Excel.Sheet"?> .(rest of file)… 我正在做这个变换通过一个Windows窗体与下面的代码: XPathDocument myXPathDoc = new XPathDocument(xmlfile); XslCompiledTransform myXslTrans = new XslCompiledTransform(); myXslTrans.Load(xslfile); XmlTextWriter myWriter = […]

XSL将XML转换成Excel

这里的新人很受我的欢迎。 我有一个基本的XSL文件,将读取我的XML数据。 我试图把XML到Excel中。 inheritance人我的问题。 有了一个小的XML文件,它似乎很容易转换它,但这个XML文件,有几个节点(我认为他们被称为),当我调用的数据,它不正确。 我只想显示来自XML的检查部分的信息,然后以显示我想要的6或7列的方式在Excel中显示,然后显示数据。 下面是我到目前为止: XML: <bdiData> <documentControlInfo> <documentInfo> <docDescription>Checks for Company X</docDescription> <docID> <ID>123456789</ID> </docID> <docModifier>My Company</docModifier> <docCreateDate>2010-08-23</docCreateDate> <docCreateTime>07:08:54-0700</docCreateTime> <standardVersion>1.0</standardVersion> <testIndicator>0</testIndicator> <resendIndicator>0</resendIndicator> </documentInfo> <sourceInfo> <sourceName>My Banking Name</sourceName> <sourceID> <idOther>ShortBankName</idOther> </sourceID> </sourceInfo> <destinationInfo> <destinationName>My Company</destinationName> <destinationID> <idOther>MYCO</idOther> </destinationID> </destinationInfo> </documentControlInfo> <checkItemCollection> <collectionInfo> <description>Items</description> <ID>654811650</ID> <Classification> <classification>Items</classification> </Classification> </collectionInfo> <checkItemBatch> <checkItemBatchInfo> <description>Paid Checks</description> <ID>1239668334710</ID> […]

如何在XSLT转换成XML表格的XML标签/元素中包含空格

我有一个XML可以通过XSLT转换成网页上的Excel工作表。 XML中的元素标记成为Excel中的列标题。 有列想要有空间。 我们不喜欢Excel工作表头中的下划线或连字符。 如何将空间合并到XML标记/元素中? 我试过把 或%20或#&20; (各种语法),但他们都显示在XML编辑器本身的错误,说这个hex字符是不允许的。 我的XML是 <ClientArray> <Client> <LastName>Aanonsen</LastName> <FirstName>Fred</FirstName> <Additional Remarks><Additional Remarks> </Client> 我想在标签中的Additional和Remarks之间Additional一个空格。 请帮忙。 提前致谢。

将XML快速转换为Excel

什么是最快(如最less的努力,而不是超级性能)的方式来将XML中的112K行转换为Excel视图。

sep =“;”语句会破坏由XSL生成的CSV文件中的utf8 BOM

我目前正在用XSLT开发CSV导出。 在我的情况下,CSV文件将使用%99%的Excel,所以我必须考虑Excel的行为。 我的第一个问题是csv中的德文特殊字符。 即使CSV编码是UTF8,Excel也无法用UTF8正确打开CSV文件。 特殊字符越来越奇怪的符号。 我find了这个问题的解决scheme。 我刚刚添加了3个额外的字节( EF BB BF – 又名BOM标头 )开头的内容字节。 因为UTF8 BOM就是这样说的,嘿,伙计,这是UTF8,正确地打开它到Excel。 问题解决了! 而我的第二个问题是关于分隔符。 默认的分隔符可以是逗号或分号取决于地区。 我认为这是德国的分号和英国的逗号。 所以,为了防止这个问题,我不得不添加下面的行: <xsl:text>sep=;</xsl:text> 要么 <xsl:text>sep=,</xsl:text> (这个分隔符不是硬编码的) 但我找不到任何解决scheme的问题是,如果您添加“sep =;” 或者在使用UT8-BOM生成CSV文件时,文件的开头是“sep =”,但是BOM无法正确显示特殊字符! 而且我确定BOM字节总是在字节数组的开头。 该屏幕截图来自Mac OS X中的MS Excel: 前3个符号属于BOM标题。 你有没有像这个问题,或者你有什么build议吗? 谢谢。 编辑: 我分享打印屏幕。 一个。 使用BOM和 <xsl:text>sep=;</xsl:text> 湾 只需与BOM Java代码: // Write the bytes ServletOutputStream out = resp.getOutputStream(); if(contentType.toString().equals("CSV")) { // […]