XML文件作为Excel文件

我有一些针对我的数据库运行的报告,最终需要以Excel电子表格的forms发给最终用户。

最初,我正在创build文本报告,但将文本转换为电子表格的步骤有点麻烦。 有太多的步骤来将文本导入到电子表格中,并且多行文本行在Excel中作为单独的行导入(这是不正确的)。

目前,我正在生成简单的XML文件,用“.xls”扩展名保存文件。 这样做效果更好,但是仍然存在Excel每次打开文件时都会提示用户inputXML导入对话框的问题,如果添加了注释或者将文件的布局更改为文件,则不得不保存新文件当然会做)。

示例“xls”文件:

<?xml version="1.0" standalone="yes"?> <report_rows> <row> <NAME>Test Data</NAME> <COUNT>345</COUNT> </row> <!-- many more row elements... --> </report_rows> 

有什么办法可以添加标记到文件,以提示Excel如何导入和处理文件? 理想情况下,最终用户应该能够像直接从Excel创build的电子表格一样打开和保存文件。

这甚至有可能吗?

更新:

我们在这里运行Office 2003。

更新:

XML是从一个sqlplus脚本生成的,在这里没有select使用C#/ .NET。

对于Excel 2003和2007,使用SpreadSheet XML(XMLSS),就是这样。 你会发现很容易,有很多支持和图书馆可用。 而且,由于您已经生成了XML,所以您只需创build转换样式表或修改代码即可。 您不需要Excel来创buildXMLSS。

我在工作之前遇到过这个问题,我发现将多个XML文件转换为Excel文件的最好方法是使用Visual Basic(VBA)macros。 如果您很less或没有使用VBA的经验,则可以在线获得许多教程和资源,例如http://www.anthony-vba.kefra.com/index.htm

 'Create an instance of the FileSystemObject Set objFSO = CreateObject("Scripting.FileSystemObject") 'Get the folder object Set objFolder = objFSO.GetFolder("C:\Sem-o_Archive\XML") 'loops through each file in the directory and prints their names and path For Each objFile In objFolder.Files cutting = Left(objFile.name, 15) Workbooks.Add ActiveWorkbook.XmlImport URL:="C:\path\to\files\" & objFile.name, ImportMap:=Nothing, _ Overwrite:=True, Destination:=range("$A$1") ActiveWorkbook.SaveAs "C:\path\to\save\location" & cutting & "xls" ActiveWorkbook.Close True Next objFile 

上面的代码将转换指定文件夹中的所有xml文件,并将其保存在指定的文件夹中,但是要使用此代码,您需要修复切割variables,以便它包含xml文件的名称。

希望这有助于。