请教: 将查询到的结果导到EXCEL的代码 谢谢
select   *   from   tablename   的结果导到         EXCEL 
 谢谢
------解决方案--------------------///  <summary>  
   /// 将DataSet里所有数据导入Excel. 
   /// 需要添加COM: Microsoft Excel Object Library. 
   /// using Excel; 
   ///  </summary>  
   ///  <param name= "filePath ">  </param>  
   ///  <param name= "ds ">  </param>  
   public static void ExportToExcel(string filePath, DataSet ds) 
   { 
    object oMissing = System.Reflection.Missing.Value; 
    Excel.ApplicationClass xlApp = new Excel.ApplicationClass(); 
    try 
    { 
     // 打开Excel文件。以下为Office 2000. 
     Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(filePath, oMissing, oMissing, oMissing, oMissing, oMissing,  
      oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, 
      oMissing); 
     Excel.Worksheet xlWorksheet; 
     // 循环所有DataTable 
     for( int i=0; i <ds.Tables.Count; i++ ) 
     { 
      // 添加入一个新的Sheet页。 
      xlWorksheet = (Excel.Worksheet)xlWorkbook.Worksheets.Add(oMissing,oMissing,1,oMissing); 
      // 以TableName作为新加的Sheet页名。 
      xlWorksheet.Name = ds.Tables[i].TableName; 
      // 取出这个DataTable中的所有值,暂存于stringBuffer中。 
      string stringBuffer =  " "; 
      for( int j=0; j <ds.Tables[i].Rows.Count; j++ ) 
      { 
       for( int k=0; k <ds.Tables[i].Columns.Count; k++ ) 
       {          
        stringBuffer += ds.Tables[i].Rows[j][k].ToString(); 
        if( k  < ds.Tables[i].Columns.Count - 1 ) 
         stringBuffer +=  "\t "; 
       } 
       stringBuffer +=  "\n "; 
      } 
      // 利用系统剪切板 
      System.Windows.Forms.Clipboard.SetDataObject( " "); 
      // 将stringBuffer放入剪切板。 
      System.Windows.Forms.Clipboard.SetDataObject(stringBuffer); 
      // 选中这个sheet页中的第一个单元格 
      ((Excel.Range)xlWorksheet.Cells[1,1]).Select(); 
      // 粘贴! 
      xlWorksheet.Paste(oMissing,oMissing); 
      // 清空系统剪切板。 
      System.Windows.Forms.Clipboard.SetDataObject( " "); 
     } 
     // 保存并关闭这个工作簿。 
     xlWorkbook.Close( Excel.XlSaveAction.xlSaveChanges, oMissing, oMissing ); 
     System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkbook); 
     xlWorkbook = null; 
    } 
    catch(Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
    finally 
    { 
     // 释放... 
     xlApp.Quit(); 
     System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp); 
     xlApp = null; 
     GC.Collect(); 
    } 
   } 
------解决方案--------------------public void ExpToExcel() 
 		{	 
 			try 
 			{ 
 				object[,] cache = new object[this.lv.Items.Count + 1, lv.Columns.Count]; 
 				for (int i = 0; i  < lv.Columns.Count; i++) 
 				{ 
 					cache[0, i] = lv.Columns[i].Text; 
 					for (int j = 0; j  < lv.Items.Count; j++) 
 					{ 
 						cache[j+1,0]= " ' "+lv.Items[j].SubItems[0].Text; 
 						cache[j + 1, i] = lv.Items[j].SubItems[i].Text; 
 					} 
 				} 
 				Excel.Application app1 = new Excel.Application(); 
 				Excel.Workbook book1 = app1.Workbooks.Add(Type.Missing); 
 				Excel.Worksheet sheet1 = (Excel.Worksheet)book1.Sheets[1]; 
 				string sRange = string.Format( "A1:{0}{1} ", (char)( 'A ' + (lv.Columns.Count - 1)), lv.Items.Count + 1); 
 				sheet1.get_Range(sRange, Type.Missing).Value2 = cache; 
 				app1.Visible = true; 
 			} 
 			catch(
System.Exception err) 
 			{ 
 				throw new Exception(err.Message);