C#对Excel的操作

第一步:添加引用-->Com-->Microsoft Excel 11.0 Object Library

第二步:在文件最上方加:
using Excel = Microsoft.Office.Interop.Excel;

第三步:编辑下面两个方法

/// <summary>
/// 执行完Excel操作方法后执行资源回收操作,必须与Excel操作的方法分开
/// </summary>
private void ExcelWrite()
{
    try
    {
        ExcelOperation();
    }
    finally
    {
        System.GC.Collect();
    }       
}

/// <summary>
/// Excel操作,只是例子
/// </summary>
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();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值