Stangray
SAP THQ Apple Nintendo Google Reynolds Amazon Yahoo

用来记录一下。老是忘记,这个是比较稳定的方法:)

 

private void SaveExcel(DataGridView dataGridView1,string filename)
{
if (dataGridView1.Rows.Count == 0)
return;

Microsoft.Office.Interop.Excel.ApplicationClass _x
=
      new Microsoft.Office.Interop.Excel.ApplicationClass();
_x.UserControl
= false;
Microsoft.Office.Interop.Excel.WorkbookClass wb
=
      (Microsoft.Office.Interop.Excel.WorkbookClass)this._x.Workbooks.Add(System.Reflection.Missing.Value);
//生成表头
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
_x.Cells[
1, i + 1] = dataGridView1.Columns[i].HeaderText;
}

//填充数据
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
if (dataGridView1[j, i].ValueType == typeof(string))
{
_x.Cells[i
+ 2, j + 1] = "'" + dataGridView1[j, i].Value.ToString();
}
else
{
_x.Cells[i
+ 2, j + 1] = dataGridView1[j, i].Value.ToString();
}
}
}

wb.Saved
= true;
this._x.ActiveWorkbook.SaveCopyAs(filename);
this._x.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject((
object)_x);
System.GC.Collect();
}

 

 

 

posted on 2010-04-07 10:31  Stangray  阅读(269)  评论(1编辑  收藏  举报