怎么使用c#语言把查询出的数据库结果导入到Excel中

如题所述

抄的,自己看,别问我。下面代码从DataSet和excel的导入导出,具体从数据库到DataSet应该会把!引用COM里面的Microsoft.Excel 11.0 1 public class ImportExportToExcel 2 { 3 private string strConn ; 4 5 private System.Windows.Forms.OpenFileDialog openFileDlg=new System.Windows.Forms.OpenFileDialog(); 6 private System.Windows.Forms.SaveFileDialog saveFileDlg=new System.Windows.Forms.SaveFileDialog(); 7 8 public ImportExportToExcel() 9 { 10 // 11 // TODO: 在此处添加构造函数逻辑 12 // 13 this.openFileDlg.DefaultExt = "xls"; 14 this.openFileDlg.Filter = "Excel文件 (*.xls)|*.xls"; 15 16 this.saveFileDlg.DefaultExt="xls"; 17 this.saveFileDlg.Filter= "Excel文件 (*.xls)|*.xls"; 18 19 } 20 21 从Excel文件导入到DataSet#region 从Excel文件导入到DataSet 22 // /// <summary> 23 // /// 从Excel导入文件 24 // /// </summary> 25 // /// <param name="strExcelFileName">Excel文件名</param> 26 // /// <returns>返回DataSet</returns> 27 // public DataSet ImportFromExcel(string strExcelFileName) 28 // { 29 // return doImport(strExcelFileName); 30 // } 31 /**//// <summary> 32 /// 从选择的Excel文件导入 33 /// </summary> 34 /// <returns>DataSet</returns> 35 public DataSet ImportFromExcel() 36 { 37 DataSet ds=new DataSet(); 38 if (openFileDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) 39 ds=doImport(openFileDlg.FileName); 40 return ds; 41 } 42 /**//// <summary> 43 /// 从指定的Excel文件导入 44 /// </summary> 45 /// <param name="strFileName">Excel文件名</param> 46 /// <returns></returns> 47 public DataSet ImportFromExcel(string strFileName) 48 { 49 DataSet ds=new DataSet(); 50 ds=doImport(strFileName); 51 return ds; 52 } 53 /**//// <summary> 54 /// 执行导入 55 /// </summary> 56 /// <param name="strFileName">文件名</param> 57 /// <returns>DataSet</returns> 58 private DataSet doImport(string strFileName) 59 { 60 if (strFileName=="") return null; 61 62 strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + 63 "Data Source=" + strFileName + ";" + 64 "Extended Properties=Excel 8.0;"; 65 OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn); 66 67 DataSet ExcelDs = new DataSet(); 68 try 69 { 70 ExcelDA.Fill(ExcelDs, "ExcelInfo"); 71 72 } 73 catch(Exception err) 74 { 75 System.Console.WriteLine( err.ToString() ); 76 } 77 return ExcelDs; 78 79 80 81 } 82 #endregion 83 84 从DataSet到出到Excel#region 从DataSet到出到Excel 85 /**//// <summary> 86 /// 导出指定的Excel文件 87 /// </summary> 88 /// <param name="ds">要导出的DataSet</param> 89 /// <param name="strExcelFileName">要导出的Excel文件名</param> 90 public void ExportToExcel(DataSet ds,string strExcelFileName) 91 { 92 if (ds.Tables.Count==0 || strExcelFileName=="") return; 93 doExport(ds,strExcelFileName); 94 95 96 } 97 /**//// <summary> 98 /// 导出用户选择的Excel文件 99 /// </summary> 100 /// <param name="ds">DataSet</param> 101 public void ExportToExcel(DataSet ds) 102 { 103 if (saveFileDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) 104 doExport(ds,saveFileDlg.FileName); 105 106 } 107 /**//// <summary> 108 /// 执行导出 109 /// </summary> 110 /// <param name="ds">要导出的DataSet</param> 111 /// <param name="strExcelFileName">要导出的文件名</param> 112 private void doExport(DataSet ds,string strExcelFileName) 113 { 114 115 Excel.Application excel= new Excel.Application(); 116 117 // Excel.Workbook obj=new Excel.WorkbookClass(); 118 // obj.SaveAs("c:\zn.xls",Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null); 119 120 int rowIndex=1; 121 int colIndex=0; 122 123 excel.Application.Workbooks.Add(true); 124 125 126 System.Data.DataTable table=ds.Tables[0] ; 127 foreach(DataColumn col in table.Columns) 128 { 129 colIndex++; 130 excel.Cells[1,colIndex]=col.ColumnName; 131 } 132 133 foreach(DataRow row in table.Rows) 134 { 135 rowIndex++; 136 colIndex=0; 137 foreach(DataColumn col in table.Columns) 138 { 139 colIndex++; 140 excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString(); 141 } 142 } 143 excel.Visible=false; 144 excel.Sheets[0] = "sss"; 145 excel.ActiveWorkbook.SaveAs(strExcelFileName+".XLS",Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null); 146 147 148 //wkbNew.SaveAs strBookName 149 150 151 //excel.Save(strExcelFileName); 152 excel.Quit(); 153 excel=null; 154 155 GC.Collect();//垃圾回收 156 } 157 #endregion 0
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-03
建议你使用PageOffice,网上有很多示例代码的,你参考下,很简单就可以实现的。

C# 导出Excel的6种简单方法实现
使用 Syncfusion Excel (XlsIO) 库,数据表中的数据可以轻松地导出到 Excel 工作表。通过 ImportDataTable 方法,可以实现数据表的导出。例如,对于员工详细信息的数据表,可以利用以下代码示例将其导出到 Excel 工作表。2. **对象集合导出到 Excel 将对象集合中的数据导出到 Excel 工作表是常见的需求,...

C#和数据库连接以后怎样把数据导入到excel表中啊?
1.将数据库数据存储到文本文件中,格式为xxx|xxx|xxx|,或者xxx(tab)xxx(tab),然后使用excel文本导入功能(这个很简单实用,因为导出到excel表中的东西再进行修改或者调整操作就很容易了)2.使用c#水晶报表功能直接写入excel 3.很麻烦,首先将excel范例导出为xml,然后使用文本编辑器打开,根据该文本格...

C#实现导出数据库中的数据到excel里和打印功能
先从数据库中取出数据到dataview public void OutputExcel(DataView dv,string str){ \/\/dv为要输出到Excel的数据,str为标题名称 GC.Collect();Application excel;\/\/ = new Application();int rowIndex=4;int colIndex=1;_Workbook xBk;_Worksheet xSt;excel= new ApplicationClass();xBk = excel....

怎么用C#把数据库中的数据导出到EXCEL
Excel.Workbook xlBook = xlApp.Workbooks.Add(true);\/\/将DataTable的列名导入Excel表第一行 foreach(DataColumn dc in tmpDataTable.Columns){ columnIndex ++;xlApp.Cells[rowIndex,columnIndex] = dc.ColumnName;} \/\/将DataTable中的数据导入Excel中 for(int i = 0;i<rowNum; i++){ rowIn...

asp中 (c#)该怎么把查询的数据导入excel表中 最好是有个例子 谢谢_百 ...
导入excel中有很多种方法,我这里给你提供几种方法,例子就不给了,你去网上一搜一大片,我只给你几种思路让你好去搜。一、伪excel。什么是伪excel?就是不是真正意义上的excel,因为office的功能强大,可以将HTML中的直接解析成.xls文件。方法就是用代码将数据写成一个字符串,这个字符串是HTML格式...

用C#语言把数据库如何导出成多表头EXcel文件
1.创建解决方案 菜单》新建》项目》Windows窗体应用程序:2.添加相关组件:添加两个DataGridView,一个TextBox,两个按钮 ,如下图:3.添加Excel资源:C#创建Excel文件,这里实际上是从资源中提取一个事先创建好的Excel文件,文件提取成功后,使用OleDb方法连接Excel,向Excel文件中写入数据。先在文件夹中...

...怎样将access数据库中的数据导出到一张excel表中…谢谢
C#实现和Office Excel的集成需要使用System.Office命名空间,或者Microsoft Excel Object 的COM组件,然后导出。

需要一个 c#的 导入excel的程序
1.右击解决方案的引用,添加.NET中Microsoft.Office.Interop.Excel的引用;2.在代码头添加using Microsoft.Office.Interop.Excel;3.在函数中添加如下代码:\/\/创建 Microsoft.Office.Interop.Excel.Application excel1 = new Microsoft.Office.Interop.Excel.Application();Workbook workbook1 = excel1.Workbooks...

c# 如何把按条件查询到的数据输出到Excel表格
查询Access?ADO.NET支持Access数据库,直接连接 写语句就可以。显示到DataGridView里面?查出来是个DataSet ,自己按列遍历一下,组成一个强类型List,然后绑定到Datagrid的ItemsSource就好了。导出Excel?用微软的dll可以做,用第三方的NPOI也可以做,无非就是把第二步里 查出来的那个List<T> 先按行,再...

...的数据(多个查询结果集 dataset)导出到一个excel的不同sheet中_百 ...
首先,如果您使用的是VS2005,则须引入Excel.dll文件;如果您使用的是VS2003,则引入Interop.Excel.dll文件,一般工程会自动引入.然后,引用命名空间:using Excel;最后添加方法:\/\/\/ \/\/\/ 将传入的DataSet数据导出至Excel文件 \/\/\/ \/\/\/ DataGrid public static void DataSet2Excel(DataSet ds){ int maxRow...

相似回答