Public class excelexporter {private dataset _ dataset = NULL; /// <summary> /// dataset to be exported /// </Summary> Public dataset {get {return _ dataset ;}} /// <summary> /// construct an excelexporter // </Summary> Public excelexporter () {_ dataset = new dataset ();} /// <summary> /// construct an excelexporter // </Summary> /// <Param name = "dataset"> dataset to be exported </param> Public excelexporter (Dataset dataset) {_ Dataset = dataset ;} /// <summary> /// generate an Excel file /// </Summary> /// <Param name = "FILENAME"> file name </param> Public void Export (string filename) {If (filename = NULL) {Throw new nullreferenceexception ("FILENAME");} string excelxml = createexcelxml (_ dataset); streamwriter = new streamwriter (filename, false, encoding. unicode); streamwriter. write (excelxml. tostring (); streamwriter. close ();} /// <Summary> /// generate an Excel file /// </Summary> /// <Param name = "stream"> stream </param> Public void Export (stream) {If (Stream = NULL) {Throw new nullreferenceexception ("stream");} string excelxml = createexcelxml (_ dataset); streamwriter = new streamwriter (stream, encoding. unicode); streamwriter. write (excelxml. tostring (); streamwriter. close ();} private string createexcelxml (Data Set dataset) {If (Dataset = NULL) {Throw new nullreferenceexception ("dataset");} If (Dataset. tables. count = 0) {Throw new invalidoperationexception ("dataset must contain at least one able. ");} Stringbuilder excelxml = new stringbuilder (); // xml header excelxml. appendline (" <? XML version = \ "1.0 \"?> "); // Workbook excelxml. appendline ("<workbook xmlns = \" urn: Schemas-Microsoft-com: Office: spreadsheet \ "xmlns: O = \" urn: Schemas-Microsoft-com: Office: office \ "xmlns: x = \" urn: Schemas-Microsoft-com: Office: Excel \ "xmlns: Ss = \" urn: Schemas-Microsoft-com: Office: spreadsheet \ "xmlns: html = \" http://www.w3.org/tr/rec-html40\ ">"); // worksheet foreach (datatable in dataset. tables) {excelxml. append ("\ t"); excelxml. appendline ("<worksheet SS: Name = \" "+ texttoxml (datatable. tablename) + "\"> "); excelxml. append ("\ t"); excelxml. appendline ("<Table>"); // header excelxml. append ("\ t"); excelxml. appendline ("<row>"); foreach (datacolumn in datatable. columns) {excelxml. append ("\ t"); excelxml. appendline ("<cell>"); excelxml. append ("\ t"); excelxml. appendline ("<data SS: TYPE = \" string \ ">" + texttoxml (datacolumn. columnname) + "</data>"); excelxml. append ("\ t"); excelxml. appendline ("</cell>");} excelxml. append ("\ t"); excelxml. appendline ("</row>"); // table body foreach (datarow in datatable. rows) {excelxml. append ("\ t"); excelxml. appendline ("<row>"); // cell foreach (datacolumn in datatable. columns) {excelxml. append ("\ t"); excelxml. appendline ("<cell>"); excelxml. append ("\ t"); excelxml. appendline ("<data SS: TYPE = \" string \ ">" + texttoxml (datarow [datacolumn]. tostring () + "</data>"); excelxml. append ("\ t"); excelxml. appendline ("</cell>");} excelxml. append ("\ t"); excelxml. appendline ("</row>");} excelxml. append ("\ t"); excelxml. appendline ("</table>"); excelxml. append ("\ t"); excelxml. appendline ("</worksheet>");} excelxml. append ("</workbook>"); Return excelxml. tostring ();} private string texttoxml (string value) {value = value. replace ("&", "&"); value = value. replace ("\" ","); value = value. replace ("<", "<"); value = value. replace (">", ">"); Return Value ;}} protected void btndc_click (Object sender, eventargs e) {dataset DS = BLL. examresult. selectexamresult (); New excelexporter (DS ). export (@ "C: \ Users \ Administrator \ Desktop \ mly.xls ");}