C#导出表格到Excel

我怎样才能将这个数据表导出为Excel使用:“ Microsoft.Office.Interop.Excel ”我有这个代码巫婆抓住所有的数据forms主表,并希望将其导出为Excel以更好的观点,不想使用数据网格。 关于这个话题我有很多post,但是通常只是推荐使用一些广告,如“closedxml”

OleDbConnection mycon; DataTable Table = new DataTable("AllData"); mycon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\jm11321\Documents\DB.mdb;Persist Security Info=False"); string command = "Select *From Master"; OleDbCommand oleDbCmd = new OleDbCommand(command,mycon); OleDbDataAdapter adapt = new OleDbDataAdapter(oleDbCmd); mycon.Open(); adapt.Fill(Table); mycon.Close(); 

任何帮助表示赞赏。

您必须从这里导入Microsoft.Office.Interop.Excel.dll库。 在你的项目中添加新的类文件,如ExcelUtility。 只需在其中写下下面的代码。

 using System; using System.Collections.Generic; using System.Text; using System.Data; using Excel = Microsoft.Office.Interop.Excel; namespace ExcelDemo { public class ExcelUtility { public static void CreateExcel(DataSet ds, string excelPath) { Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; try { //Previous code was referring to the wrong class, throwing an exception xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++) { for (int j = 0; j <= ds.Tables[0].Columns.Count - 1; j++) { xlWorkSheet.Cells[i + 1, j + 1] = ds.Tables[0].Rows[i].ItemArray[j].ToString(); } } xlWorkBook.SaveAs(excelPath, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); releaseObject(xlApp); releaseObject(xlWorkBook); releaseObject(xlWorkSheet); } catch (Exception ex) { throw ex; } } private static void releaseObject(object obj) { try { System.Runtime.InteropServices.Marshal.ReleaseComObject(obj); obj = null; } catch { obj = null; } finally { GC.Collect(); } } } } 

现在在主代码中传递数据集对象和excelpath如下。

 ExcelUtility.CreateExcel(ds, "D:\\Demo.xls"); 

我已经在我的项目中进行了testing和使用。

我知道已经有一个答案,但这是另一种方法

  var workbook = new XLWorkbook(); var worksheet = workbook.Worksheets.Add("Sample Sheet"); worksheet.Cell("A1").Value = "Hello World!"; workbook.SaveAs("HelloWorld.xlsx"); 

这种方法最令人惊讶的是,您可以将数据集表或表放入工作簿中

  var wb = new XLWorkbook(); var dataTable = GetTable("Information"); // Add a DataTable as a worksheet wb.Worksheets.Add(dataTable); wb.SaveAs("AddingDataTableAsWorksheet.xlsx"); 

该DLL在这里