将电子表格XML转换为XLS

时间:2015-08-05 19:04:06

标签: ruby-on-rails xml excel xls file-conversion

我在基于Spreadsheet XML的Ruby on Rails中构建了一个动态文件,用户可以将其作为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(我将其全部用大字符串)转换为合法的XLS,然后再将其发送给用户,但我无法找到任何资源来执行此操作。理想情况下,我会喜欢my_xml.to_xls类型的函数,但我会尽我所能。

0 个答案:

没有答案