一般来说C#在不安装Excel软件的情况下,可以通过XML来创建Excel文档。因此,运行本文所述代码您无需安装Excel程序。本文原例子是使用VB.Net写的,以下的用C#改写的代码,分享给大家,供大家参考。@H_502_1@
具体代码如下:@H_502_1@
DataSet mdsData = new DataSet();mdsData.tables.Add("mytable");mdsData.tables["mytable"].Columns.Add("ID");mdsData.tables["mytable"].Columns.Add("name");mdsData.tables["mytable"].Columns.Add("PassWord");for (int i = 0; i < 10; i++){ DaTarow dr = mdsData.tables["mytable"].NewRow(); dr["ID"] = i; dr["name"] = i; dr["PassWord"] = i; mdsData.tables["mytable"].Rows.Add(dr);}SavefileDialog dialog1 = new SavefileDialog();dialog1.AddExtension = true;dialog1.CheckPathExists = true;dialog1.Filter = "Excel Workbooks (*.xls) | *.xls";dialog1.OverwritePrompt = true;dialog1.Title = "Save Excel Formatted Report";if (dialog1.ShowDialog() == DialogResult.OK){ int num2 = 0; int num3 = mdsData.tables[0].Rows.Count + 1; int num1 = mdsData.tables[0].Columns.Count; num2 = 0; string text1 = dialog1.filename; if (file.Exists(text1)) { file.Delete(text1); } StreamWriter writer1 = new StreamWriter(text1,false); StreamWriter writer2 = writer1; writer2.Writeline("<?xml version=\"1.0\"?>"); writer2.Writeline("<?mso-application progID=\"Excel.Sheet\"?>"); writer2.Writeline("<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\""); writer2.Writeline(" xmlns:o=\"urn:schemas-microsoft-com:office:office\""); writer2.Writeline(" xmlns:x=\"urn:schemas-microsoft-com:office:excel\""); writer2.Writeline(" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\""); writer2.Writeline(" xmlns:HTML=\"http://www.w3.org/TR/REC-HTML40\">"); writer2.Writeline(" <documentPropertIEs xmlns=\"urn:schemas-microsoft-com:office:office\">"); writer2.Writeline(" <Author>automated Report Generator Example</Author>"); writer2.Writeline(string.Format(" <Created>{0}T{1}Z</Created>",DateTime.Now.ToString("yyyy-mm-dd"),DateTime.Now.ToString("HH:MM:SS"))); writer2.Writeline(" <Company>Your Company Here</Company>"); writer2.Writeline(" <Version>11.6408</Version>"); writer2.Writeline(" </documentPropertIEs>"); writer2.Writeline(" <ExcelWorkbook xmlns=\"urn:schemas-microsoft-com:office:excel\">"); writer2.Writeline(" <WindowHeight>8955</WindowHeight>"); writer2.Writeline(" <WindowWIDth>11355</WindowWIDth>"); writer2.Writeline(" <WindowtopX>480</WindowtopX>"); writer2.Writeline(" <WindowtopY>15</WindowtopY>"); writer2.Writeline(" <ProtectStructure>False</ProtectStructure>"); writer2.Writeline(" <Protectwindows>False</Protectwindows>"); writer2.Writeline(" </ExcelWorkbook>"); writer2.Writeline(" <Styles>"); writer2.Writeline(" <Style ss:ID=\"Default\" ss:name=\"normal\">"); writer2.Writeline(" <Alignment ss:Vertical=\"Bottom\"/>"); writer2.Writeline(" <borders/>"); writer2.Writeline(" <Font/>"); writer2.Writeline(" <Interior/>"); writer2.Writeline(" <Protection/>"); writer2.Writeline(" </Style>"); writer2.Writeline(" <Style ss:ID=\"s21\">"); writer2.Writeline(" <Alignment ss:Vertical=\"Bottom\" ss:WrapText=\"1\"/>"); writer2.Writeline(" </Style>"); writer2.Writeline(" </Styles>"); writer2.Writeline(" <Worksheet ss:name=\"MyReport\">"); writer2.Writeline(string.Format(" <table ss:ExpandedColumnCount=\"{0}\" ss:ExpandedRowCount=\"{1}\" x:FullColumns=\"1\"",num1.ToString(),num3.ToString())); writer2.Writeline(" x:FullRows=\"1\">"); foreach (DaTarow row1 in mdsData.tables[0].Rows) { writer2.Writeline("<Row>"); for (num2 = 0; num2 != num1; num2++) { writer2.Write("<Cell ss:StyleID=\"s21\"><Data ss:Type=\"String\">"); writer2.Write(row1[num2].ToString()); writer2.Writeline("</Data></Cell>"); } writer2.Writeline("</Row>"); } writer2.Writeline(" </table>"); writer2.Writeline(" <Worksheetoptions xmlns=\"urn:schemas-microsoft-com:office:excel\">"); writer2.Writeline(" <Selected/>"); writer2.Writeline(" <Panes>"); writer2.Writeline(" <Pane>"); writer2.Writeline(" <Number>3</Number>"); writer2.Writeline(" <ActiveRow>1</ActiveRow>"); writer2.Writeline(" </Pane>"); writer2.Writeline(" </Panes>"); writer2.Writeline(" <ProtectObjects>False</ProtectObjects>"); writer2.Writeline(" <ProtectScenarios>False</ProtectScenarios>"); writer2.Writeline(" </Worksheetoptions>"); writer2.Writeline(" </Worksheet>"); writer2.Writeline(" <Worksheet ss:name=\"Sheet2\">"); writer2.Writeline(" <Worksheetoptions xmlns=\"urn:schemas-microsoft-com:office:excel\">"); writer2.Writeline(" <ProtectObjects>False</ProtectObjects>"); writer2.Writeline(" <ProtectScenarios>False</ProtectScenarios>"); writer2.Writeline(" </Worksheetoptions>"); writer2.Writeline(" </Worksheet>"); writer2.Writeline(" <Worksheet ss:name=\"Sheet3\">"); writer2.Writeline(" <Worksheetoptions xmlns=\"urn:schemas-microsoft-com:office:excel\">"); writer2.Writeline(" <ProtectObjects>False</ProtectObjects>"); writer2.Writeline(" <ProtectScenarios>False</ProtectScenarios>"); writer2.Writeline(" </Worksheetoptions>"); writer2.Writeline(" </Worksheet>"); writer2.Writeline("</Workbook>"); writer2 = null; writer1.Close(); MessageBox.Show("Report Created","Success",MessageBoxbuttons.OK,MessageBoxIcon.Asterisk);}
这只是主要的代码,使用前需要此入using相应的命名空间,如果不知道需要哪个命名空间,可在编译时根据提示逐个添加。@H_502_1@ 总结
以上是内存溢出为你收集整理的C#利用XML创建Excel文档的实现方法全部内容,希望文章能够帮你解决C#利用XML创建Excel文档的实现方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)