1. 程式人生 > >C#從數據庫導出數據[excel]

C#從數據庫導出數據[excel]

.net xlsx

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

using MySql.Data.MySqlClient;

using Microsoft.Office.Interop.Excel;

using Excel = Microsoft.Office.Interop.Excel; //使用命名空間別名

using System.Reflection;

namespace _01

{

class Tools

{

static void

Main(string[]args)

{

if(ExportDataTableToExcel(SqlHelper.ExecuteTable("SELECT * FROM students", CommandType.Text, null),@"E:\03.xls"))

{

Console.WriteLine("OK!");

}

else{

Console.WriteLine("Fail!");

}

Console.ReadKey();

}

public static boolExportDataTableToExcel(System.Data.DataTable dt, stringfilepath)

{

Excel.ApplicationoXL; //應用

Excel.Workbook oWB; //工作簿

Excel.WorksheetoSheet; //工作表

Excel.Range oRange;

//單元格

try

{

// Start Excel and get Application object.

oXL = new Excel.Application(); //啟動並且創建對象

// Set some properties

oXL.Visible = true;

oXL.DisplayAlerts = false; //設置警告信息的默認值

// Get a new workbook.

oWB = oXL.Workbooks.Add(Missing.Value);

// Get the Active sheet

oSheet = (Excel.Worksheet)oWB.ActiveSheet;

oSheet.Name = "Data";

introwCount = 1;

foreach(DataRow dr in dt.Rows)

{

rowCount += 1;

for(int i = 1; i < dt.Columns.Count +1; i++)

{

// Add the header the first timethrough

if (rowCount ==2)

{

oSheet.Cells[1, i] = dt.Columns[i -1].ColumnName;

}

oSheet.Cells[rowCount, i] = dr[i - 1].ToString();

}

}

// Resize the columns

oRange = oSheet.Range[oSheet.Cells[1,1],

oSheet.Cells[rowCount, dt.Columns.Count]];

oRange.EntireColumn.AutoFit();

// Save the sheet and close

oSheet = null;

oRange = null;

oWB.SaveAs(filepath, Excel.XlFileFormat.xlWorkbookNormal,

Missing.Value, Missing.Value,Missing.Value, Missing.Value,

Excel.XlSaveAsAccessMode.xlExclusive,

Missing.Value, Missing.Value,Missing.Value,

Missing.Value, Missing.Value);

oWB.Close(Missing.Value,Missing.Value, Missing.Value);

oWB = null;

oXL.Quit();

}

catch

{

throw;

}

finally

{

// Clean up

// NOTE: When in release mode, this does thetrick

GC.WaitForPendingFinalizers();

GC.Collect();

GC.WaitForPendingFinalizers();

GC.Collect();

}

returntrue;

}

}

}

Tips:SqlHelper未提供。

本文出自 “禦八面之風,駕舟而行” 博客,請務必保留此出處http://germa66.blog.51cto.com/12942227/1971215

C#從數據庫導出數據[excel]