C#利用XML创建Excel文档的实现方法

C#利用XML创建Excel文档的实现方法,第1张

概述一般来说C#在不安装Excel软件的情况下,可以通过XML来创建Excel文档。因此,运行本文所述代码您无需安装Excel程序。本文原例子是使用VB.Net写的,以下的用C#改写的代码,分享给大家,供大家参考。

一般来说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文档的实现方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1254527.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存