2013-10-09 74 views
0

我想從Excel表格中檢索所有值並以XML格式存儲。如何以.XML格式存儲變量值?這是我的代碼。我嘗試使用writeXMl,但它的格式不正確。我想以.XML格式保存xlContent變量中的任何內容。將LINQ保存到XML

var columnNames = new List<string>(); 
foreach (DataColumn column in dt.Columns) 
{ 
    columnNames.Add(column.ColumnName); 
} 
var xlContent = new XElement("DocumentElement", from row in dt.AsEnumerable() 
         select new XElement("Assets", from columnName in columnNames 
         select new XElement(columnName.Replace(" ",""), row[columnName]))).ToString(); 


dt.WriteXml("C:\\Development\\MyAppln\\ExcelToXML\\Products.xml"); 
+0

嘗試.. HTTP:// stackoverflow.com/questions/1527790/how-can-i-write-to-an-excel-spreadsheet-using-linq –

+0

@ Jidheesh Rajan鏈接不回答我的問題 – NoviceToProgramming

回答

0

使用XElement.Save()方法:

xlContent.Save("C:\\Development\\MyAppln\\ExcelToXML\\Products.xml"); 

聲明xlContent如var然後將具有在端部的ToString()使得xlContent一個string。如果您刪除ToString(),則xlContent將正確聲明爲XElement,並且您將能夠獲得Save()方法。

當調用Save()時,會自動添加xml聲明。更多參考檢查:XElement.Save Method

現在,如果你不想默認聲明,您可以添加您的XElementXDocument,然後定義聲明的屬性:

XDocument xDoc = new XDocument 
     (
      new XDeclaration("1.0","Windows-1252","yes"), 
      xlContent 
     ); 
    xDoc.Save("C:\\Development\\MyAppln\\ExcelToXML\\Products.xml"); 
+0

沒有任何xlContent.save方法可用。它的一個變種。 – NoviceToProgramming

+0

即使它是一個Var,因爲您將它聲明爲XElement,它將是一個XElement並具有其所有屬性和方法。 –

+0

但沒有xlContent.Save();任何其他方式來做到這一點? – NoviceToProgramming