Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C将XML数据导出到Excel#_C#_Xml_Excel_Linq - Fatal编程技术网

C# 使用C将XML数据导出到Excel#

C# 使用C将XML数据导出到Excel#,c#,xml,excel,linq,C#,Xml,Excel,Linq,错误:“名为‘BusinessUnit’的列已属于此数据表:无法将嵌套表名设置为相同的名称。” 我尝试过使用LINQ: DataSet ds = new DataSet(); string path = "C:\\abc\\xyz.xml"; ds.ReadXml(path); //throws error ExportDataSetToExcel(ds); 它工作正常,但这样,我必须手动读取所有元素 我还尝试使用-var-allegements

错误:“名为‘BusinessUnit’的列已属于此数据表:无法将嵌套表名设置为相同的名称。”

我尝试过使用LINQ:

DataSet ds = new DataSet();
string path = "C:\\abc\\xyz.xml";
ds.ReadXml(path);                         //throws error
ExportDataSetToExcel(ds);
它工作正常,但这样,我必须手动读取所有元素

我还尝试使用-
var-allegements=xdoc.substands()读取元素。
; 但无法在数据集中存储特定元素。

对我来说,问题不在于无法将XML数据导出到Excel中

问题实际上是,您无法将基于树的分层格式的XML转换为二维值数组,以便导出到Excel

我的意思是,如果您的XML包含三个层次结构,您希望Excel如何显示它

无论如何,让我回答你问题的第二部分

如果您可以以常规二维格式获取数据,无论是作为
数据集
还是
数据表
,那么您可以使用我的免费C#类使用一行代码将其写入.xlsx文件

现在,您只需要将数据转换为可用的格式

交给你

DataSet ds = new DataSet();
string path = "C:\\abc\\xyz.xml";
ds.ReadXml(path);                         //throws error
ExportDataSetToExcel(ds);
XDocument xdoc = XDocument.Load(path);
XElement import = xdoc.Element("IMPORT");
XElement contact = import.Element("Contact");
StringReader theReader = new StringReader(contact.ToString());
ds.ReadXml(theReader);