public static void Write(string Filename, string Title, IEnumerable> Data) { XmlTextWriter writer = new XmlTextWriter(Filename, Encoding.UTF8); writer.Formatting = Formatting.Indented; writer.Indentation = 2; writer.WriteProcessingInstruction("xml", "version=\"1.0\""); writer.WriteProcessingInstruction("mso-application", "progid=\"Excel.Sheet\""); writer.WriteStartElement("Workbook"); writer.WriteAttributeString("xmlns", "urn:schemas-microsoft-com:office:spreadsheet"); writer.WriteAttributeString("xmlns:ss", "urn:schemas-microsoft-com:office:spreadsheet"); writer.WriteStartElement("Worksheet"); writer.WriteAttributeString("ss:Name", Title); writer.WriteStartElement("Table"); foreach (IEnumerable row in Data) { writer.WriteStartElement("Row"); foreach (object column in row) { writer.WriteStartElement("Cell"); if (column != null) { writer.WriteStartElement("Data"); if (column.GetType().IsValueType) writer.WriteAttributeString("ss:Type", "Number"); else writer.WriteAttributeString("ss:Type", "String"); writer.WriteString(column.ToString()); writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); writer.Flush(); writer.Close(); }