XML到Excel(2007)使用Windows XP和C#.Net的想法

时间:2020-03-05 18:57:28  来源:igfitidea点击:

我有一个数据集,我已将其修改为xml文档,然后使用xsl工作表转换为Excel xml格式,以便允许从应用程序以编程方式打开数据。我遇到了两个问题:

  • Excel不是打开Excel文件的默认Windows应用程序,因此,当运行Program.Start(" xmlfilename.xml")时,将打开IE,并且XML文件的可读性不高。
  • 如果将文件重命名为.xlsx,则会收到警告:"这不是Excel文件,我们要继续吗?"。这对于客户而言并不理想。

理想情况下,我希望Windows在Excel中打开文件而无需修改用于打开Excel文件的默认操作系统设置。 Office互操作是可能的,但对于此应用程序似乎有点过大。有谁有任何想法使这项工作吗?

该解决方案位于.Net / C#中,但我愿意创建其他解决方案。

解决方案

回答

如果将文件另存为XML-Excel的扩展名xlsx,该怎么办?

回答

Process.Start(@"C:\Program Files\Microsoft Office\Officexx\excel.exe", "yourfile.xml");

话虽如此,我们仍然会看到消息框。我想我们可以使用Interop,但是我不确定它对效果如何。

回答

如Sam所述,xlsx文件扩展名可能是一个不错的选择。但是,除了将XML文件另存为xlsx之外,还涉及更多的工作。一个xlsx实际上是一个zip文件,在文件夹中带有一堆xml文件。我在这里找到了一些不错的示例代码,尽管我没有亲自尝试过,但似乎可以给出一些很好的解释。

回答

预先为插入第三方库而道歉,我知道它不是免费的,但是我使用TMS Software的FlexCel Studio。如果我们想做的不仅仅是转储数据(格式,动态交叉表等),它会很好地工作。我们每周使用它生成数百份报告。

FlexCel接受强类型的数据集,它可以根据关系对数据进行分组,并且生成的Excel文件看起来比从Crystal Reports excel导出中获得的文件更干净。我已经完成了Crystal Reporting和OLE自动化的工作。 FlexCel的价格为125美元(欧盟)。

回答

如果将以下内容插入XML的第二行,它将指示Windows使用Excel打开

<?mso-application progid="Excel.Sheet"?>