///
</summary>
private void ExportExcel()
{
if
(this.table == null) return;
bool fileSaved =
false;
SaveFileDialog sfdSaveFile = new
SaveFileDialog();
sfdSaveFile.DefaultExt =
“xls”;
sfdSaveFile.Filter =
“Excel文件(*.xls)|*.xls”;
sfdSaveFile.FileName =
string.Empty;
if (sfdSaveFile.ShowDialog() != DialogResult.OK)
return;
//電腦Excel程序
Microsoft.Office.Interop.Excel.Application
xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp ==
null)
{
MessageBox.Show(“無(wú)法創(chuàng)建Excel對(duì)象,可能您的機(jī)子未安裝Excel程序!”, “提示”,
MessageBoxButtons.OK,
MessageBoxIcon.Error);
return;
}
//Workbook集合
Microsoft.Office.Interop.Excel.Workbooks
workbooks =
xlApp.Workbooks;
//Workbook
Microsoft.Office.Interop.Excel.Workbook
workbook =
workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
//WorkSheet
Microsoft.Office.Interop.Excel.Worksheet
worksheet =
(Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
//從DataTable中導(dǎo)出Excel
////寫入字段列標(biāo)題
//for
(int i = 0; i < this.table.Columns.Count;
i++)
//{
// worksheet.Cells[1, i + 1] =
this.table.Columns.ColumnName;
//}
////寫入數(shù)值
//for
(int r = 0; r < this.table.Rows.Count; r++)
//{
// for
(int i = 0; i < this.table.Columns.Count;
i++)
// {
// worksheet.Cells[r + 2, i + 1] =
this.table.Rows[r];
// }
// System.Windows.Forms.Application.DoEvents();
//}
//從DataGridView中導(dǎo)出Excel
//標(biāo)題
for
(int c = 0; c < this.dgvList.Columns.Count;
c++)
{
worksheet.Cells[1, c + 1] =
this.dgvList.Columns[c].HeaderText;
//設(shè)置單元格樣式
Microsoft.Office.Interop.Excel.Range
range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, c +
1];
range.Font.Name = “華文楷體”;//字體
range.Font.Bold =
true;//是否加粗
range.Font.Italic = false;//是否傾斜
range.Font.Size =
15;//字體大小
//其他樣式屬性暫不知其中的值,不可用
//range.Font.Background
=”#fff000″;//背景顏色
//range.Font.Color
=”#ff0000″;//字顏色
//range.Font.ColorIndex =
3;
//range.Borders.Color =
“#00ffee”;//邊框顏色
}
//單元格內(nèi)容
for (int rowIndex = 0;
rowIndex < this.dgvList.Rows.Count; rowIndex++)
{
for (int
columnIndex = 0; columnIndex < this.dgvList.Columns.Count;
columnIndex++)
{
worksheet.Cells[rowIndex + 2, columnIndex +
1] =
this.dgvList.Rows[rowIndex].Cells[columnIndex].Value.ToString();
}
}
worksheet.Columns.EntireColumn.AutoFit();//列寬自適應(yīng)。
//對(duì)指定列進(jìn)行格式輸出
//Microsoft.Office.Interop.Excel.Range
rg = worksheet.get_Range(worksheet.Cells[2, 1],
worksheet.Cells[this.table.Rows.Count + 1, 1]);
//rg.NumberFormat =
“00000000”;
try
{
workbook.Saved =
true;
workbook.SaveCopyAs(sfdSaveFile.FileName);//保存復(fù)制到指定位置
fileSaved
= true;
}
catch (Exception ex)
{
fileSaved =
false;
MessageBox.Show(“導(dǎo)出文件時(shí)出錯(cuò),文件可能正被打開(kāi)!n” +
ex.Message);
}
finally
{
workbooks.Close();
xlApp.Quit();
GC.Collect();//強(qiáng)行銷毀
}
if
(fileSaved &&
System.IO.File.Exists(sfdSaveFile.FileName))
{
//System.IO.File.Open(sfdSaveFile.FileName,
System.IO.FileMode.OpenOrCreate,
System.IO.FileAccess.Read);
System.Diagnostics.Process.Start(sfdSaveFile.FileName);
//打開(kāi)EXCEL
}
}