使用C#向Excel中写数据

使用C#向Excel中写数据

    由于客户对Excel的使用都比较熟悉了。所以在我们的系统中输出报表的时候都需要输出为Excel。我使用的是VS 2003 其中对使用Excel没有提供很方便的工具。只能自己把Excel的Com组件添加进来。   但是在使用Com组件提供的类型的时候,很多方法的返回值或者参数都是object.不知道实际的类型。使用起来很困难。   

 下面将我所用过的各种功能的C# 写发都列出来.    

 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值