[C#]对Excel的操作
private void ExcelOperation() |
{ |
// |
//定义一个缺少的object对象 |
object oMis = System.Reflection.Missing.Value; |
|
// |
//定义一个Excel程序对象 |
Excel.ApplicationClass excelApp = new Microsoft.Office.Interop.Excel.ApplicationClass(); |
|
// |
//由Execl程序创建一个工作薄对象 |
Excel.Workbook excelWorkBook = excelApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); |
|
// |
//由工作薄对象创建一个工作表 |
Excel.Worksheet excelWorkSheet = (Excel.Worksheet)excelWorkBook.Worksheets.Add(oMis, oMis, 1, oMis); |
|
// |
//设置工作的表的名字 |
excelWorkSheet.Name = "测试项目" ; |
|
// |
//定义一个Excel区域对象,用于保存选择的区域 |
Excel.Range selectRange; |
|
// |
//设置第1行第1列的值 |
((Excel.Range)excelWorkSheet.Cells[1, 1]).set_Item(1, 1, "日期" ); |
|
// |
//设置第1行第2列的值 |
((Excel.Range)excelWorkSheet.Cells[1, 1]).set_Item(1, 2, "时间" ); |
|
// |
//选择第2行第2列至第2行第2列,设置值与格式 |
selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[2, 2], excelWorkSheet.Cells[2, 2]); |
selectRange.set_Item(1, 1, "11:30" ); |
selectRange.NumberFormatLocal = @"h:mm;@" ; |
|
// |
//选择第3行第2列至第2行第2列,设置值与格式 |
selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[3, 2], excelWorkSheet.Cells[3, 2]); |
selectRange.set_Item(1, 1, "12:30" ); |
selectRange.NumberFormatLocal = @"h:mm;@" ; |
|
// |
//选择第4行第2列至第2行第2列,设置值与格式 |
selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[4, 2], excelWorkSheet.Cells[4, 2]); |
selectRange.set_Item(1, 1, "13:30" ); |
selectRange.NumberFormatLocal = @"h:mm;@" ; |
|
// |
//选择第5行第2列至第2行第2列,设置值与格式 |
selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[5, 2], excelWorkSheet.Cells[5, 2]); |
selectRange.set_Item(1, 1, "14:30" ); |
selectRange.NumberFormatLocal = @"h:mm;@" ; |
|
// |
//选择第6行第2列至第2行第2列,设置值与格式 |
selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[6, 2], excelWorkSheet.Cells[6, 2]); |
selectRange.set_Item(1, 1, "15:30" ); |
selectRange.NumberFormatLocal = @"h:mm;@" ; |
|
// |
//选择第2行第1列至第2行第1列, |
selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[2, 1], excelWorkSheet.Cells[2, 1]); |
// |
//选择是必须的,因设置了选择区域后并未选中此区域 |
selectRange.Select(); |
|
// |
//冻结窗体 |
excelApp.ActiveWindow.FreezePanes = true ; |
|
// |
//选择第2行第1列至第6行第1列, |
selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[2, 1], excelWorkSheet.Cells[6, 1]); |
|
// |
//合并单元格 |
selectRange.Merge(oMis); |
|
selectRange.EntireColumn.AutoFit(); //全部列自适应宽度 |
selectRange.EntireRow.AutoFit(); //全部行自适应高度 |
|
selectRange.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; //水平居中 |
selectRange.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter; //垂直居中 |
|
// |
//设置单元格的格式 |
selectRange.NumberFormatLocal = @"yyyy-m-d;@" ; |
/* |
NumberFormatLocal = "¥#,##0.00_);[红色](¥#,##0.00)" //货币 |
NumberFormatLocal = "0.00%" //百分比 |
NumberFormatLocal = "# ??/??" //分数 |
* */ |
|
// |
//设置单元格的值 |
selectRange.set_Item(1, 1, "2007-02-27" ); |
|
//selectRange.ColumnWidth = 50; //固定宽度 |
selectRange.Columns.AutoFit(); //自适应宽度 |
|
selectRange.Borders.LineStyle = BorderStyle.FixedSingle; //设置边框样式 |
selectRange.Borders.Weight = Excel.XlBorderWeight.xlThin; //边框粗细 |
selectRange.Borders.ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic; //颜色 |
|
excelWorkBook.Saved = true ; //将工作薄的保存标志置为True |
|
//捕捉异常,以防止文件为只读或已打开,保存时会出错 |
try |
{ |
excelWorkBook.SaveCopyAs( @"d:/aa.xls" ); |
} |
catch (Exception exp) |
{ |
MessageBox.Show(exp.Message); |
} |
|
//Excel程序退出,注意:要在外面释放内存资源 |
excelApp.Quit(); |
} |