C# 操作excel

背景:在沈阳机床项目中,要把DataGridView中的数据,有选择的导入到一个excel中,excel有相应的表头。

步骤:

1.先生成Excel的方法为调用本地Office COM组件,操作Excel。新建项目后,添加对应Office版本的Microsoft.Office.Interop.Excel的引用。(http://www.kankansea.cn/ViewArticle1303.aspx

2.下面是一些常用方法

 1.启动Excel进程
       Excel.Application m_objExcel = new Excel.Application(); //这个过程很简单。new 一个对象就可以了。
    2.打开一个Excel文件。
      在向Excel文件中写东西的时候,一般是先打开一个已经存在的文件,由于输出报表的时候都是需要模版的。所以我们的系统中都是这样。如何建立一个空白的Excel文件的问题还没有解决。
      Excel.Workbooks m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
      m_objBooks.Open (excelFilePath,Type.Missing ,Type.Missing ,Type.Missing ,Type.Missing ,Type.Missing ,Type.Missing ,Type.Missing ,Type.Missing ,Type.Missing ,Type.Missing ,Type.Missing ,Type.Missing ,Type.Missing ,Type.Missing );
      其中excelFilePath是Excel文件的路径。其它的都是Type.Missing。
   3.获取 Worksheet
     m_objBook = m_objBooks.get_Item (1);  
     Excel.Sheets m_objSheets = (Excel.Sheets)m_objBook.Worksheets;
     Excel._Worksheet  m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(1));
    Worksheet是实际可以写数据的东西,就是我们在Excel中看到的一页页的东西。
   4.获取Range
     在操作Cell的时候可以使用Cell和Range。Range就是多个Cell。但是一个Cell也可以作为Range。
     Excel.Range m_objRange=(Excel.Range)=m_objSheet.getRange("A1","D5");
     注意这个制定Range范围的参数,是先列后行的。而且列使用一个两个字母来表示。和你在Excel中看到的一样。
   5.写数据
      写数据有两种方式。一种是直接写到特定的Cell中.
      m_objSheet.Cells[5,6]=1568.36;
      还有一种就是使用Range或者Cell.
      m_objRange.Value2=1568.36;
   6.控制Range的颜色.
     我控制颜色的时候是使用其Interior.ColorIndex来指定。如下所示:
     Interior .ColorIndex=35;
     应该还有别的方法,但是我没有进一步研究。使用这个已经够用了。
   7.控制Range的边框
     边框通过Range的Borders属性来控制,代码如下:
     range.Borders[Excel.XlBordersIndex .xlEdgeTop].LineStyle =Excel.XlLineStyle .xlContinuous;
     Excel.XlBordersIndex是一个枚举,可以用来指定是哪一个边框。边框本身还有一些属性可以进一步控制。这里就不一一列举了。
   8.合并单元格
     合并单元格需要分两步走。首先需要获取一个Range 这个Range就是需要合并的单元格的左上角和右下角确定的。然后设置Range的MergeCells为true.
    m_objRange=m_objSheet.getRange("A1","D6");
    m_objRange.MergeCells=true;
  9.设置对齐方式
    直接看代码:
    m_objRange.VerticalAlignment =Excel.XlVAlign.xlVAlignCenter;
    m_objRange.HorizontalAlignment =Excel.XlHAlign .xlHAlignCenter ;
  10。设置内容格式
    Excel默认将所有的内容都识别为数子,这样有些不方便。有时候输出的内容不是数据,但是也是一串数字,比如编号等,这个时候Excel就会帮倒忙了。所以需要指定格式
    m_objRange.NumberFormatLocal="@";//这样就可以表示是文本了
    m_objRange.NumberFormatLocal="0.00_";//这个表示是一个数字但是保留两位小数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值