将电子表格XML转换为XLS

我已经在基于Spreadsheet XML的 Ruby on Rails中构build了一个dynamic文件,用户可以下载为XLS文件。 文件内容的一个例子是这样的:

<?xml version='1.0'?> <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'> <ss:Styles> <ss:Style ss:ID='header'><ss:Font ss:Bold='1'/><ss:Alignment ss:Horizontal='Center'/></ss:Style> <ss:Style ss:ID='row'><ss:Alignment ss:Horizontal='Center' ss:Vertical='Center'/></ss:Style> </ss:Styles> <Worksheet ss:Name='Sheet1'> <Table> <Row ss:StyleID='header'> <Cell><Data ss:Type='String'>Folder</Data></Cell> <Cell><Data ss:Type='String'>Sub-Folder</Data></Cell> <Cell><Data ss:Type='String'>Value</Data></Cell> </Row> <Row ss:StyleID='row'> <Cell><Data ss:Type='String'>root</Data></Cell> <Cell><Data ss:Type='String'>@defCode</Data></Cell> <Cell><Data ss:Type='String'>433999</Data></Cell> </Row> </Table> </Worksheet> </Workbook> 

将文件扩展名为XLS允许用户使用任何电子表格应用程序(例如OpenOffice,LibreOffice,当然还有Excel)来打开它。 问题是Excel不会打开包含XML代码的XLS文件,而不会首先抱怨内容和扩展名不匹配。 我不希望这样做。

我已经决定,我想把我生成的XML(我把它全部用大string)转换成合法的XLS,然后再发送给用户,但是我一直没有find任何资源来做这件事。 理想情况下,我会喜欢my_xml.to_xlstypes的function,但我会拿我能得到的。