public void Export(string fileName, IEnumerable <object> data) { try { string ext = System.IO.Path.GetExtension(fileName).ToLowerInvariant(); if (ext == ".xml") { XmlWriterSettings s = new XmlWriterSettings(); s.Indent = true; using (XmlWriter writer = XmlWriter.Create(fileName)) { writer.WriteStartElement("root"); ExportToXml(writer, data); writer.WriteEndElement(); } InternetExplorer.EditTransform(IntPtr.Zero, fileName); } else if (ext == ".csv") { using (StreamWriter sw = new System.IO.StreamWriter(fileName, false, Encoding.UTF8)) { ExportToCsv(sw, data); } InternetExplorer.OpenUrl(IntPtr.Zero, fileName); } else { throw new Exception("Expecting either .xml or .csv file extension"); } } catch (Exception e) { MessageBoxEx.Show("Error exporting rows\n" + e.Message, "Export Error", MessageBoxButton.OK, MessageBoxImage.Error); } }