http://topic.youkuaiyun.com/u/20080623/14/d0953232-d549-4ebd-806c-45b5ec23437c.html
Excel.Application excel=new Microsoft.Office.Interop.Excel.Application();
Excel.Workbook excelBook = excel.Workbooks.Add(Type.Missing);
Excel.Worksheet excelSheet = (Excel.Worksheet)excelBook.ActiveSheet;
excel.Visible = true;
try
{
DataTable dt = GetTable();
DataTableToExcel(dt, excelSheet);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
excel = null;
GC.Collect();
}
}
public void DataTableToExcel(DataTable dt, Excel.Worksheet excelSheet)
{
int rowCount = dt.Rows.Count;
int colCount = dt.Columns.Count;
object[,] dataArray = new object[rowCount+1, colCount];
for (int k = 0; k < colCount; k++)
{
dataArray[0, k] = dt.Columns[k].ColumnName;
}
for (int i = 0; i < rowCount; i++)
{
for (int j = 0; j < colCount; j++)
{
dataArray[i+1, j] = dt.Rows[i][j];
}
}
excelSheet.get_Range("A1", excelSheet.Cells[rowCount+1, colCount]).Value2 = dataArray;