{"id":214,"date":"2011-12-29T13:27:06","date_gmt":"2011-12-29T13:27:06","guid":{"rendered":"ca46c1b9512a7a8315fa3c5a946e8265"},"modified":"2011-12-29T13:27:06","modified_gmt":"2011-12-29T13:27:06","slug":"","status":"publish","type":"post","link":"https:\/\/www.xiaobo.li\/notes\/archives\/214","title":{"rendered":"\u5c06DataTable\u5bfc\u51fa\u4e3aExcel (XML Spreadsheet)"},"content":{"rendered":"<p>\u7ed3\u679c\u5bfc\u51fa\u6210Excel\u6587\u4ef6. \u7528\u51e0\u4e2a\u4e0d\u540c\u7684\u529e\u6cd5\u505a\u4e86\u51fa\u6765. \u6700\u540e\u90e8\u7f72\u65f6\u53d1\u73b0: \u7528COM+\u7ec4\u4ef6\u884c\u4e0d\u901a, \u670d\u52a1\u5668\u4e0a\u6ca1\u88c5OFFICE; \u7528OWC\u4e5f\u4e0d\u884c, \u56e0\u4e3a\u670d\u52a1\u5668\u662f64\u4f4d\u7684, OWC\u4e0d\u652f\u6301; \u5bfc\u51fa\u6210Excel2003\u652f\u6301\u7684xml, \u8fd9\u62db\u6700\u7075\u6d3b, \u4e5f\u662f\u4e00\u4e2a\u7b80\u5355\u53ef\u884c\u7684\u529e\u6cd5.<\/p>\n<p>\u9996\u5148\u7528Excel 2003\u65b0\u5efa\u4e00\u4e2a\u7a7a\u767dWookbook, \u7136\u540e\u4fdd\u5b58\u4e3aXML Spreadsheet. \u7136\u540e\u6253\u5f00\u770b\u5b83\u751f\u6210\u7684XML\u4ee3\u7801\u5c31\u80fd\u4e86\u89e3XML Spreadsheet\u7684\u57fa\u672c\u7ed3\u6784\u4e86.<br \/>\n\u6211\u5148\u628aDataTable\u751f\u6210XML\u6570\u636e, \u518d\u4f7f\u7528\u4e00\u4e2aXLS\u628aXML\u6570\u636e\u8f6c\u6362\u6210XML Spreadsheet\u7684\u7ed3\u6784.<\/p>\n<p>&nbsp;<\/p>\n<pre style=\"border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, 'Courier New', courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;\"><span style=\"color:#0000ff;\">using<\/span> System;<span style=\"color:#0000ff;\">using<\/span> System.Collections.Generic;<\/pre>\n<pre style=\"border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, 'Courier New', courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;\"><span style=\"color:#0000ff;\">using<\/span> System.Data;<\/pre>\n<pre style=\"border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, 'Courier New', courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;\"><span style=\"color:#0000ff;\">using<\/span> System.IO;<\/pre>\n<pre style=\"border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, 'Courier New', courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;\"><span style=\"color:#0000ff;\">using<\/span> System.Reflection;<\/pre>\n<pre style=\"border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, 'Courier New', courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;\"><span style=\"color:#0000ff;\">using<\/span> System.Text;<\/pre>\n<pre style=\"border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, 'Courier New', courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;\"><span style=\"color:#0000ff;\">using<\/span> System.Xml;<\/pre>\n<pre style=\"border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, 'Courier New', courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;\"><span style=\"color:#0000ff;\">using<\/span> System.Xml.Xsl;<\/pre>\n<pre style=\"border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, 'Courier New', courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;\"><span style=\"color:#0000ff;\">namespace<\/span> AProject\r\n{\r\n    <span style=\"color:#0000ff;\">public<\/span> <span style=\"color:#0000ff;\">class<\/span> ExcelHelper\r\n    {\r\n        <span style=\"color:#0000ff;\">public<\/span> <span style=\"color:#0000ff;\">static<\/span> <span style=\"color:#0000ff;\">string<\/span> ExportAsTempFile(DataTable dataTable, <span style=\"color:#0000ff;\">bool<\/span> appendColumnNames)\r\n        {\r\n            <span style=\"color:#0000ff;\">if<\/span>(dataTable == <span style=\"color:#0000ff;\">null<\/span>)\r\n            {\r\n                <span style=\"color:#0000ff;\">return<\/span> <span style=\"color:#0000ff;\">null<\/span>;\r\n            }\r\n\r\n            <span style=\"color:#0000ff;\">return<\/span> ExportAsTempFile(<span style=\"color:#0000ff;\">new<\/span> DataTable[] { dataTable }, appendColumnNames);\r\n        }\r\n\r\n        <span style=\"color:#0000ff;\">public<\/span> <span style=\"color:#0000ff;\">static<\/span> <span style=\"color:#0000ff;\">string<\/span> ExportAsTempFile(DataSet dataSet, <span style=\"color:#0000ff;\">bool<\/span> appendColumnNames)\r\n        {\r\n            <span style=\"color:#0000ff;\">string<\/span> fileName = Path.GetTempFileName();\r\n\r\n            <span style=\"color:#0000ff;\">if<\/span>(ExportFile(dataSet, fileName, appendColumnNames))\r\n            {\r\n                <span style=\"color:#0000ff;\">return<\/span> fileName;\r\n            }\r\n\r\n            <span style=\"color:#0000ff;\">return<\/span> <span style=\"color:#0000ff;\">null<\/span>;\r\n        }\r\n\r\n        <span style=\"color:#0000ff;\">public<\/span> <span style=\"color:#0000ff;\">static<\/span> <span style=\"color:#0000ff;\">string<\/span> ExportAsTempFile(DataTable[] dataTables, <span style=\"color:#0000ff;\">bool<\/span> appendColumnNames)\r\n        {\r\n            <span style=\"color:#0000ff;\">string<\/span> fileName = Path.GetTempFileName();\r\n\r\n            <span style=\"color:#0000ff;\">if<\/span>(ExportFile(dataTables, fileName, appendColumnNames))\r\n            {\r\n                <span style=\"color:#0000ff;\">return<\/span> fileName;\r\n            }\r\n\r\n            <span style=\"color:#0000ff;\">return<\/span> <span style=\"color:#0000ff;\">null<\/span>;\r\n        }\r\n\r\n        <span style=\"color:#0000ff;\">public<\/span> <span style=\"color:#0000ff;\">static<\/span> <span style=\"color:#0000ff;\">bool<\/span> ExportFile(DataTable dataTable, <span style=\"color:#0000ff;\">string<\/span> fileName, <span style=\"color:#0000ff;\">bool<\/span> appendColumnNames)\r\n        {\r\n            <span style=\"color:#0000ff;\">if<\/span>(dataTable == <span style=\"color:#0000ff;\">null<\/span>)\r\n            {\r\n                <span style=\"color:#0000ff;\">return<\/span> <span style=\"color:#0000ff;\">false<\/span>;\r\n            }\r\n\r\n            <span style=\"color:#0000ff;\">return<\/span> ExportFile(<span style=\"color:#0000ff;\">new<\/span> DataTable[] { dataTable }, fileName, appendColumnNames);\r\n        }\r\n\r\n        <span style=\"color:#0000ff;\">public<\/span> <span style=\"color:#0000ff;\">static<\/span> <span style=\"color:#0000ff;\">bool<\/span> ExportFile(DataSet dataSet, <span style=\"color:#0000ff;\">string<\/span> fileName, <span style=\"color:#0000ff;\">bool<\/span> appendColumnNames)\r\n        {\r\n            <span style=\"color:#0000ff;\">if<\/span>(dataSet == <span style=\"color:#0000ff;\">null<\/span>)\r\n            {\r\n                <span style=\"color:#0000ff;\">return<\/span> <span style=\"color:#0000ff;\">false<\/span>;\r\n            }\r\n\r\n            DataTable[] dataTables = <span style=\"color:#0000ff;\">new<\/span> DataTable[dataSet.Tables.Count];\r\n            dataSet.Tables.CopyTo(dataTables, 0);\r\n            <span style=\"color:#0000ff;\">return<\/span> ExportFile(dataTables, fileName, appendColumnNames);\r\n        }\r\n\r\n        <span style=\"color:#0000ff;\">public<\/span> <span style=\"color:#0000ff;\">static<\/span> <span style=\"color:#0000ff;\">bool<\/span> ExportFile(DataTable[] dataTables, <span style=\"color:#0000ff;\">string<\/span> fileName, <span style=\"color:#0000ff;\">bool<\/span> appendColumnNames)\r\n        {\r\n            <span style=\"color:#0000ff;\">if<\/span>(dataTables == <span style=\"color:#0000ff;\">null<\/span> || dataTables.Length == 0 || <span style=\"color:#0000ff;\">string<\/span>.IsNullOrEmpty(fileName))\r\n            {\r\n                <span style=\"color:#0000ff;\">return<\/span> <span style=\"color:#0000ff;\">false<\/span>;\r\n            }\r\n\r\n            XmlDocument xmlDoc = GetXmlDataTables(dataTables, appendColumnNames);\r\n            XmlDocument xlsDoc = TransformXml(xmlDoc);\r\n\r\n            <span style=\"color:#0000ff;\">try<\/span>             {\r\n                xlsDoc.Save(fileName);\r\n                <span style=\"color:#0000ff;\">return<\/span> <span style=\"color:#0000ff;\">true<\/span>;\r\n            }\r\n            <span style=\"color:#0000ff;\">catch<\/span>             {\r\n                <span style=\"color:#0000ff;\">return<\/span> <span style=\"color:#0000ff;\">false<\/span>;\r\n            }\r\n        }\r\n\r\n        <span style=\"color:#0000ff;\">private<\/span> <span style=\"color:#0000ff;\">static<\/span> XmlDocument GetXmlDataTables(DataTable[] dataTables, <span style=\"color:#0000ff;\">bool<\/span> appendColumnNames)\r\n        {\r\n            <span style=\"color:#0000ff;\">if<\/span>(dataTables == <span style=\"color:#0000ff;\">null<\/span>)\r\n            {\r\n                <span style=\"color:#0000ff;\">return<\/span> <span style=\"color:#0000ff;\">null<\/span>;\r\n            }\r\n\r\n            XmlDocument xmlDoc = <span style=\"color:#0000ff;\">new<\/span> XmlDocument();\r\n            XmlElement rootNode = xmlDoc.CreateElement(<span style=\"color:#006080;\">\"DTS\"<\/span>);\r\n            XmlElement tableNode;\r\n            XmlElement rowNode;\r\n            XmlElement colNode;\r\n            DataTable dt;\r\n\r\n            <span style=\"color:#0000ff;\">for<\/span>(<span style=\"color:#0000ff;\">int<\/span> i = 0; i &lt; dataTables.Length; i++)\r\n            {\r\n                dt = dataTables[i];\r\n\r\n                <span style=\"color:#0000ff;\">if<\/span>(dt == <span style=\"color:#0000ff;\">null<\/span>)\r\n                {\r\n                    <span style=\"color:#0000ff;\">break<\/span>;\r\n                }\r\n\r\n                <span style=\"color:#0000ff;\">if<\/span>(dt.TableName.Trim() == <span style=\"color:#0000ff;\">string<\/span>.Empty)\r\n                {\r\n                    dt.TableName = <span style=\"color:#006080;\">\"DataTable\"<\/span> + i.ToString();\r\n                }\r\n\r\n                tableNode = xmlDoc.CreateElement(<span style=\"color:#006080;\">\"DT\"<\/span>);\r\n                tableNode.SetAttribute(<span style=\"color:#006080;\">\"N\"<\/span>, dt.TableName);\r\n\r\n                <span style=\"color:#0000ff;\">if<\/span>(appendColumnNames)\r\n                {\r\n                    rowNode = xmlDoc.CreateElement(<span style=\"color:#006080;\">\"DR\"<\/span>);\r\n\r\n                    <span style=\"color:#0000ff;\">foreach<\/span>(DataColumn dc <span style=\"color:#0000ff;\">in<\/span> dt.Columns)\r\n                    {\r\n                        colNode = xmlDoc.CreateElement(<span style=\"color:#006080;\">\"DC\"<\/span>);\r\n                        colNode.SetAttribute(<span style=\"color:#006080;\">\"N\"<\/span>, dc.ColumnName);\r\n                        colNode.SetAttribute(<span style=\"color:#006080;\">\"T\"<\/span>, <span style=\"color:#006080;\">\"String\"<\/span>);\r\n                        colNode.AppendChild(xmlDoc.CreateTextNode(dc.ColumnName));\r\n                        rowNode.AppendChild(colNode);\r\n                    }\r\n\r\n                    tableNode.AppendChild(rowNode);\r\n                }\r\n\r\n\r\n                <span style=\"color:#0000ff;\">foreach<\/span>(DataRow dr <span style=\"color:#0000ff;\">in<\/span> dt.Rows)\r\n                {\r\n                    rowNode = xmlDoc.CreateElement(<span style=\"color:#006080;\">\"DR\"<\/span>);\r\n\r\n                    <span style=\"color:#0000ff;\">foreach<\/span>(DataColumn dc <span style=\"color:#0000ff;\">in<\/span> dt.Columns)\r\n                    {\r\n                        colNode = xmlDoc.CreateElement(<span style=\"color:#006080;\">\"DC\"<\/span>);\r\n                        colNode.SetAttribute(<span style=\"color:#006080;\">\"N\"<\/span>, dc.ColumnName);\r\n                        colNode.SetAttribute(<span style=\"color:#006080;\">\"T\"<\/span>, GetDataType(dc.DataType));\r\ncolNode.AppendChild(xmlDoc.CreateTextNode(GetTextValue(dc.DataType, dr[dc.ColumnName])));\r\n                        rowNode.AppendChild(colNode);\r\n                    }\r\n\r\n                    tableNode.AppendChild(rowNode);\r\n                }\r\n\r\n                rootNode.AppendChild(tableNode);\r\n            }\r\n\r\n            xmlDoc.AppendChild(rootNode);\r\n            <span style=\"color:#0000ff;\">return<\/span> xmlDoc;\r\n        }\r\n\r\n        <span style=\"color:#0000ff;\">private<\/span> <span style=\"color:#0000ff;\">static<\/span> <span style=\"color:#0000ff;\">string<\/span> GetTextValue(Type type, <span style=\"color:#0000ff;\">object<\/span> <span style=\"color:#0000ff;\">value<\/span>)\r\n        {\r\n            <span style=\"color:#0000ff;\">string<\/span> text;\r\n\r\n            <span style=\"color:#0000ff;\">if<\/span>(type == <span style=\"color:#0000ff;\">typeof<\/span>(DateTime))\r\n            {\r\n                text = ((DateTime)<span style=\"color:#0000ff;\">value<\/span>).ToString(<span style=\"color:#006080;\">\"yyyy-MM-ddTHH:mm:ssZ\"<\/span>);\r\n            }\r\n            <span style=\"color:#0000ff;\">else<\/span>             {\r\n                text = <span style=\"color:#0000ff;\">value<\/span>.ToString();\r\n            }\r\n\r\n            <span style=\"color:#0000ff;\">return<\/span> text;\r\n        }\r\n\r\n        <span style=\"color:#0000ff;\">private<\/span> <span style=\"color:#0000ff;\">static<\/span> <span style=\"color:#0000ff;\">string<\/span> GetDataType(Type type)\r\n        {\r\n            <span style=\"color:#0000ff;\">string<\/span> dataType;\r\n\r\n            <span style=\"color:#0000ff;\">if<\/span>(type == <span style=\"color:#0000ff;\">typeof<\/span>(<span style=\"color:#0000ff;\">string<\/span>))\r\n            {\r\n                dataType = <span style=\"color:#006080;\">\"String\"<\/span>;\r\n            }\r\n            <span style=\"color:#0000ff;\">else<\/span> <span style=\"color:#0000ff;\">if<\/span>(type == <span style=\"color:#0000ff;\">typeof<\/span>(DateTime))\r\n            {\r\n                dataType = <span style=\"color:#006080;\">\"DateTime\"<\/span>;\r\n            }\r\n            <span style=\"color:#0000ff;\">else<\/span> <span style=\"color:#0000ff;\">if<\/span>(type == <span style=\"color:#0000ff;\">typeof<\/span>(<span style=\"color:#0000ff;\">bool<\/span>))\r\n            {\r\n                dataType = <span style=\"color:#006080;\">\"Boolean\"<\/span>;\r\n            }\r\n            <span style=\"color:#0000ff;\">else<\/span>             {\r\n                dataType = <span style=\"color:#006080;\">\"Number\"<\/span>;\r\n            }\r\n\r\n            <span style=\"color:#0000ff;\">return<\/span> dataType;\r\n        }\r\n\r\n        <span style=\"color:#0000ff;\">private<\/span> <span style=\"color:#0000ff;\">static<\/span> XmlDocument TransformXml(XmlDocument xmlDoc)\r\n        {\r\n            XmlDocument xlsDoc = <span style=\"color:#0000ff;\">new<\/span> XmlDocument();\r\n            XslCompiledTransform xslt = <span style=\"color:#0000ff;\">new<\/span> XslCompiledTransform();\r\n            Assembly assembly = Assembly.GetExecutingAssembly();\r\n\r\n            <span style=\"color:#0000ff;\">using<\/span>(Stream s = assembly.GetManifestResourceStream(<span style=\"color:#006080;\">\"AProject.Resources.XmlSpreadsheet.xsl\"<\/span>))\r\n            {\r\n                <span style=\"color:#0000ff;\">if<\/span>(s != <span style=\"color:#0000ff;\">null<\/span>)\r\n                {\r\n                    xslt.Load(XmlReader.Create(s));\r\n                    MemoryStream output = <span style=\"color:#0000ff;\">new<\/span> MemoryStream();\r\n                    XmlTextWriter xmlWriter = <span style=\"color:#0000ff;\">new<\/span> XmlTextWriter(output, Encoding.UTF8);\r\n                    xslt.Transform(xmlDoc, xmlWriter);\r\n                    output.Position = 0;\r\n                    xlsDoc.Load(output);\r\n                    xlsDoc.PrependChild(xlsDoc.CreateXmlDeclaration(<span style=\"color:#006080;\">\"1.0\"<\/span>, <span style=\"color:#0000ff;\">null<\/span>, <span style=\"color:#0000ff;\">null<\/span>));\r\n                    output = <span style=\"color:#0000ff;\">null<\/span>;\r\n                }\r\n            }\r\n\r\n            <span style=\"color:#0000ff;\">return<\/span> xlsDoc;\r\n        }\r\n    }\r\n}<\/pre>\n<p>----------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/p>\n<p>&lt;?xml version=\"1.0\" ?&gt;<br \/>\n&lt;xsl:stylesheet version=\"1.0\" xmlns:xsl=\"<a href=\"http:\/\/www.w3.org\/1999\/XSL\/Transform\">http:\/\/www.w3.org\/1999\/XSL\/Transform<\/a>\" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp; &lt;xsl:output method='xml' version='1.0'\/&gt;<br \/>\n&nbsp;&nbsp;&nbsp; &lt;xsl:template match=\"DTS\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ss:Workbook &gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ss:Styles&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ss:Style ss:ID=\"Default\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ss:NumberFormat ss:Format=\"General\"\/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/ss:Style&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ss:Style ss:ID=\"DateTime\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ss:NumberFormat ss:Format=\"General Date\"\/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/ss:Style&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/ss:Styles&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:apply-templates select=\"DT\" \/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/ss:Workbook&gt;<br \/>\n&nbsp;&nbsp;&nbsp; &lt;\/xsl:template&gt;<\/p>\n<p>&nbsp;&nbsp;&nbsp; &lt;xsl:template match=\"DT\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ss:Worksheet&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:attribute&nbsp; name=\"ss:Name\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:value-of select=\"@N\"\/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/xsl:attribute&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ss:Table&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:apply-templates select=\"DR\" \/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/ss:Table&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/ss:Worksheet&gt;<br \/>\n&nbsp;&nbsp;&nbsp; &lt;\/xsl:template&gt;<\/p>\n<p>&nbsp;&nbsp;&nbsp; &lt;xsl:template match=\"DR\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ss:Row&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:apply-templates select=\"DC\" \/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/ss:Row&gt;<br \/>\n&nbsp;&nbsp;&nbsp; &lt;\/xsl:template&gt;<\/p>\n<p>&nbsp;&nbsp;&nbsp; &lt;xsl:template match=\"DC\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ss:Cell&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:choose&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:when test=\"@T = 'DateTime'\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:attribute name=\"ss:StyleID\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:text&gt;DateTime&lt;\/xsl:text&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/xsl:attribute&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/xsl:when&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/xsl:choose&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ss:Data&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:attribute name=\"ss:Type\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:value-of select=\"@T\"\/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/xsl:attribute&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:choose&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:when test=\"@T = 'String'\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:text disable-output-escaping=\"yes\"&gt;&amp;lt;![CDATA[&lt;\/xsl:text&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:value-of&nbsp; select=\".\"\/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:text disable-output-escaping=\"yes\"&gt;]]&amp;gt;&lt;\/xsl:text&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/xsl:when&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:otherwise&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:value-of select=\".\"\/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/xsl:otherwise&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/xsl:choose&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/ss:Data&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/ss:Cell&gt;<br \/>\n&nbsp;&nbsp;&nbsp; &lt;\/xsl:template&gt;<br \/>\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/p>\n<div id=\"article_content\" class=\"article_content\">\n<p>public class DataSetToExcel<br \/>\n&nbsp;&nbsp;&nbsp; {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ &lt;summary&gt; <br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ \u751f\u6210EXCEL <br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ &lt;\/summary&gt; <br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public DataSetToExcel()<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { }<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ &lt;summary&gt;\u521b\u5efa\uff25\uff58\uff43\uff45\uff4c\u7684\uff58\uff4d\uff4c\u6587\u4ef6<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ <br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ &lt;\/summary&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ &lt;param name=\"DS\"&gt;\u6570\u636e&lt;\/param&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ &lt;param name=\"fileName\"&gt;\u6587\u4ef6\u540d&lt;\/param&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public DataSetToExcel(DataSet DS, string fileName)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CreateXmlExcelFile(DS, fileName);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ &lt;summary&gt; \u521b\u5efa\uff25\uff58\uff43\uff45\uff4c\u7684\uff58\uff4d\uff4c\u6587\u4ef6<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ <br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ &lt;\/summary&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ &lt;param name=\"DS\"&gt;\u6570\u636e&lt;\/param&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\/ &lt;param name=\"fileName\"&gt;\u6587\u4ef6\u540d&lt;\/param&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void CreateXmlExcelFile(DataSet DS, string fileName)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string foldName = fileName;<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #region \u540c\u540d\u6587\u4ef6\u5220\u9664<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileInfo FI = new FileInfo(foldName);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (FI.Exists)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FI.Delete();<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #endregion<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #region \u521b\u5efaXML\u5bf9\u8c61\uff0c\u4e8c\u7ef4\u6570\u7ec4\u5199\u5165\u5e76\u4fdd\u5b58<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\u521b\u5efa\u4e00\u4e2aXML\u6587\u6863 <br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlDocument xmldoc = new XmlDocument();<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlNode xmldc = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, \"\", \"\");<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmldoc.AppendChild(xmldc);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlProcessingInstruction xmlpi = xmldoc.CreateProcessingInstruction(\"mso-application\", \"progid=\/\"Excel.Sheet\/\"\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmldoc.AppendChild(xmlpi);<\/p>\n<p>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \/\/\u521b\u5efa\u4e00\u4e2a\u5de5\u4f5c\u7c3f <br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlElement xmlwb = xmldoc.CreateElement(\"Workbook\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlwb.SetAttribute(\"xmlns\", \"urn:schemas-microsoft-com:office:spreadsheet\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlwb.SetAttribute(\"xmlns:o\", \"urn:schemas-microsoft-com:office:office\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlwb.SetAttribute(\"xmlns:x\", \"urn:schemas-microsoft-com:office:excel\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlwb.SetAttribute(\"xmlns:ss\", \"urn:schemas-microsoft-com:office:spreadsheet\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlwb.SetAttribute(\"xmlns:html\", \"<a href=\"http:\/\/www.w3.org\/TR\/REC-html40\"><span style=\"color:#336699;\">http:\/\/www.w3.org\/TR\/REC-html40<\/span><\/a>\");<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmldoc.AppendChild(xmlwb);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlElement xmlsts = xmldoc.CreateElement(\"Styles\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlwb.AppendChild(xmlsts);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlElement xmlst = xmldoc.CreateElement(\"Style\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlAttribute xmlarr = xmldoc.CreateAttribute(\"ss:ID\", \"urn:schemas-microsoft-com:office:spreadsheet\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr.Value = \"s21\";<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlst.Attributes.Append(xmlarr);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlsts.AppendChild(xmlst);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlElement xmlnf = xmldoc.CreateElement(\"NumberFormat\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr = xmldoc.CreateAttribute(\"ss:Format\", \"urn:schemas-microsoft-com:office:spreadsheet\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr.Value = \"Short Date\";<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlnf.Attributes.Append(xmlarr);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlst.AppendChild(xmlnf);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (DataTable DT in DS.Tables)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlElement xmlws = xmldoc.CreateElement(\"Worksheet\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr = xmldoc.CreateAttribute(\"ss:Name\", \"urn:schemas-microsoft-com:office:spreadsheet\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr.Value = DT.TableName.Replace(\"\/\", \"\"); <br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlws.Attributes.Append(xmlarr);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlwb.AppendChild(xmlws);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlElement xmltb = xmldoc.CreateElement(\"Table\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlws.AppendChild(xmltb);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlElement xmlrw = xmldoc.CreateElement(\"Row\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmltb.AppendChild(xmlrw);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (DataColumn DC in DT.Columns)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlElement xmlcl = xmldoc.CreateElement(\"Cell\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlrw.AppendChild(xmlcl);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlElement xmldt = xmldoc.CreateElement(\"Data\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr = xmldoc.CreateAttribute(\"ss:Type\", \"urn:schemas-microsoft-com:office:spreadsheet\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr.Value = \"String\";<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmldt.Attributes.Append(xmlarr);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlText xmltxt = xmldoc.CreateTextNode(DC.ColumnName);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmldt.AppendChild(xmltxt);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlcl.AppendChild(xmldt);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (DataRow DR in DT.Rows)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlrw = xmldoc.CreateElement(\"Row\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmltb.AppendChild(xmlrw);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (DataColumn DC in DT.Columns)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlElement xmlcl = xmldoc.CreateElement(\"Cell\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlElement xmldt = xmldoc.CreateElement(\"Data\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlText xmltxt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch (DC.DataType.Name.ToLower())<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case \"int32\":<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case \"decimal\":<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case \"double\":<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr = xmldoc.CreateAttribute(\"ss:Type\", \"urn:schemas-microsoft-com:office:spreadsheet\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr.Value = \"Number\";<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmldt.Attributes.Append(xmlarr);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmltxt = xmldoc.CreateTextNode(DR[DC.ColumnName].ToString().Trim());<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case \"datetime\":<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case \"smalldatetime\":<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr = xmldoc.CreateAttribute(\"ss:StyleID\", \"urn:schemas-microsoft-com:office:spreadsheet\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr.Value = \"s21\";<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlcl.Attributes.Append(xmlarr);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr = xmldoc.CreateAttribute(\"ss:Type\", \"urn:schemas-microsoft-com:office:spreadsheet\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr.Value = \"DateTime\";<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmldt.Attributes.Append(xmlarr);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmltxt = xmldoc.CreateTextNode(Convert.ToDateTime(DR[DC.ColumnName]).ToString(\"yyyy-MM-ddTHH:mm:ss\").Trim());<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr = xmldoc.CreateAttribute(\"ss:Type\", \"urn:schemas-microsoft-com:office:spreadsheet\");<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlarr.Value = \"String\";<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmldt.Attributes.Append(xmlarr);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmltxt = xmldoc.CreateTextNode(DR[DC.ColumnName].ToString().Trim());<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmldt.AppendChild(xmltxt);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlcl.AppendChild(xmldt);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlrw.AppendChild(xmlcl);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmldoc.Save(foldName);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Diagnostics.Process.Start(foldName);<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #endregion<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<\/p>\n<p>\n&nbsp;&nbsp;&nbsp; }<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u7ed3\u679c\u5bfc\u51fa\u6210Excel\u6587\u4ef6. \u7528\u51e0\u4e2a\u4e0d\u540c\u7684\u529e\u6cd5\u505a\u4e86\u51fa\u6765. \u6700\u540e\u90e8\u7f72\u65f6\u53d1\u73b0: \u7528COM+\u7ec4\u4ef6\u884c\u4e0d\u901a, \u670d\u52a1\u5668\u4e0a\u6ca1\u88c5OFFICE; \u7528OWC\u4e5f\u4e0d\u884c, \u56e0\u4e3a\u670d\u52a1\u5668\u662f64\u4f4d\u7684, OWC\u4e0d\u652f\u6301; \u5bfc\u51fa\u6210Excel2003\u652f\u6301\u7684xml, \u8fd9\u62db\u6700\u7075\u6d3b, \u4e5f\u662f\u4e00\u4e2a\u7b80\u5355\u53ef\u884c\u7684\u529e\u6cd5.<\/p>\n<p>\u9996\u5148\u7528Excel 2003\u65b0\u5efa\u4e00\u4e2a\u7a7a\u767dWookbook, \u7136\u540e\u4fdd\u5b58\u4e3aXML Spreadsheet. \u7136\u540e\u6253\u5f00\u770b\u5b83\u751f\u6210\u7684XML\u4ee3\u7801\u5c31\u80fd\u4e86\u89e3XML Spreadsheet\u7684\u57fa\u672c\u7ed3\u6784\u4e86.<br \/>\n\u6211\u5148\u628aDataTable\u751f\u6210XML\u6570\u636e, \u518d\u4f7f\u7528\u4e00\u4e2aXLS\u628aXML\u6570\u636e\u8f6c\u6362\u6210XML Spreadsheet\u7684\u7ed3\u6784.<\/p>\n<p>&nbsp;<\/p>\n<pre style=\"border-bottom-style:none;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:consolas, 'Courier New', courier, monospace;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;\"><span style=\"color:#0000ff;\">using<\/span> System;<span style=\"color:#0000ff;\">...<\/span><\/pre>\n<p> <a href=\"https:\/\/www.xiaobo.li\/notes\/archives\/214\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[273],"tags":[66],"class_list":["post-214","post","type-post","status-publish","format-standard","hentry","category-article","tag-excel"],"_links":{"self":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/214","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/comments?post=214"}],"version-history":[{"count":0,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/214\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/media?parent=214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/categories?post=214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/tags?post=214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}