C#利用XML创建Excel文档的实现方法
2023-06-13 09:15:42 时间
一般来说C#在不安装Excel软件的情况下,可以通过XML来创建Excel文档。因此,运行本文所述代码您无需安装Excel程序。本文原例子是使用VB.Net写的,以下的用C#改写的代码,分享给大家,供大家参考。
具体代码如下:
DataSetmDSData=newDataSet(); mDSData.Tables.Add("myTable"); mDSData.Tables["myTable"].Columns.Add("ID"); mDSData.Tables["myTable"].Columns.Add("Name"); mDSData.Tables["myTable"].Columns.Add("PassWord"); for(inti=0;i<10;i++) { DataRowdr=mDSData.Tables["myTable"].NewRow(); dr["ID"]=i; dr["Name"]=i; dr["PassWord"]=i; mDSData.Tables["myTable"].Rows.Add(dr); } SaveFileDialogdialog1=newSaveFileDialog(); dialog1.AddExtension=true; dialog1.CheckPathExists=true; dialog1.Filter="ExcelWorkbooks(*.xls)|*.xls"; dialog1.OverwritePrompt=true; dialog1.Title="SaveExcelFormattedReport"; if(dialog1.ShowDialog()==DialogResult.OK) { intnum2=0; intnum3=mDSData.Tables[0].Rows.Count+1; intnum1=mDSData.Tables[0].Columns.Count; num2=0; stringtext1=dialog1.FileName; if(File.Exists(text1)) { File.Delete(text1); } StreamWriterwriter1=newStreamWriter(text1,false); StreamWriterwriter2=writer1; writer2.WriteLine("<?xmlversion=\"1.0\"?>"); writer2.WriteLine("<?mso-applicationprogid=\"Excel.Sheet\"?>"); writer2.WriteLine("<Workbookxmlns=\"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("<DocumentPropertiesxmlns=\"urn:schemas-microsoft-com:office:office\">"); writer2.WriteLine("<Author>AutomatedReportGeneratorExample</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>YourCompanyHere</Company>"); writer2.WriteLine("<Version>11.6408</Version>"); writer2.WriteLine("</DocumentProperties>"); writer2.WriteLine("<ExcelWorkbookxmlns=\"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("<Styless:ID=\"Default\"ss:Name=\"Normal\">"); writer2.WriteLine("<Alignmentss:Vertical=\"Bottom\"/>"); writer2.WriteLine("<Borders/>"); writer2.WriteLine("<Font/>"); writer2.WriteLine("<Interior/>"); writer2.WriteLine("<Protection/>"); writer2.WriteLine("</Style>"); writer2.WriteLine("<Styless:ID=\"s21\">"); writer2.WriteLine("<Alignmentss:Vertical=\"Bottom\"ss:WrapText=\"1\"/>"); writer2.WriteLine("</Style>"); writer2.WriteLine("</Styles>"); writer2.WriteLine("<Worksheetss:Name=\"MyReport\">"); writer2.WriteLine(string.Format("<Tabless:ExpandedColumnCount=\"{0}\"ss:ExpandedRowCount=\"{1}\"x:FullColumns=\"1\"",num1.ToString(),num3.ToString())); writer2.WriteLine("x:FullRows=\"1\">"); foreach(DataRowrow1inmDSData.Tables[0].Rows) { writer2.WriteLine("<Row>"); for(num2=0;num2!=num1;num2++) { writer2.Write("<Cellss:StyleID=\"s21\"><Datass:Type=\"String\">"); writer2.Write(row1[num2].ToString()); writer2.WriteLine("</Data></Cell>"); } writer2.WriteLine("</Row>"); } writer2.WriteLine("</Table>"); writer2.WriteLine("<WorksheetOptionsxmlns=\"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("<Worksheetss:Name=\"Sheet2\">"); writer2.WriteLine("<WorksheetOptionsxmlns=\"urn:schemas-microsoft-com:office:excel\">"); writer2.WriteLine("<ProtectObjects>False</ProtectObjects>"); writer2.WriteLine("<ProtectScenarios>False</ProtectScenarios>"); writer2.WriteLine("</WorksheetOptions>"); writer2.WriteLine("</Worksheet>"); writer2.WriteLine("<Worksheetss:Name=\"Sheet3\">"); writer2.WriteLine("<WorksheetOptionsxmlns=\"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("ReportCreated","Success",MessageBoxButtons.OK,MessageBoxIcon.Asterisk); }
这只是主要的代码,使用前需要此入using相应的命名空间,如果不知道需要哪个命名空间,可在编译时根据提示逐个添加。
相关文章
- 将Excel转换为word_excel如何将横排变成竖排
- 【说站】Excel如何快速删除空行?WPS删除excel空白行
- ORM哪家强?java,c#,php,python,go 逐一对比, 网友直呼:全面客观
- 【地铁上的Redis与C#】数据类型(八)--List类型操作注意事项与常见业务场景
- 报表 MySQL导出Excel数据报表的指南(mysql导出excel)
- 轻松实现Excel导入MySQL数据库(excel导入mysql数据库)
- 数据库的比较深入比较:Excel与MySQL的数据库技术优劣(excel与mysql)
- MySQL快速导入Excel数据(mysql导入excel数据)
- 快速实现Excel数据导入MySQL的方法(excel数据导入mysql)
- MySQL读取Excel文件的简单方法(mysql读取excel)
- 文件Linux下快速导出Excel文件(linux导出excel)
- 从Excel表到Oracle数据库精彩转变(excel转oracle)
- C#使用正则表达式实例
- c#类和成员的修饰详细介绍
- C#将htmltable导出成excel实例
- C#操作Excel数据增删改查示例
- C#窗体间通讯处理的几种方法总结
- c#对xml增删改查操作示例
- c#通过unicode编码判断字符是否为中文示例分享
- C#文件操作的简单实例
- C#中把Datatable转换为Json的5个代码实例
- C#定时关闭窗体实例
- C#动态执行批处理命令的方法
- C#中结构(struct)的部分初始化和完全初始化实例分析
- C#利用Openxml读取Excel数据实例