VS DisplayInExcel()函数简介

开发 后端
这里介绍VS DisplayInExcel()函数,我们定义一个VS DisplayInExcel()函数用于创建Excel表格,然后将容器中的账号数据填充到Excel表格中。

在向大家详细介绍VS DisplayInExcel()函数之前,首先让大家了解下在Excel中显示账号数据,然后全面介绍VS DisplayInExcel()函数,希望对大家有用。下面我们将把这些数据显示到Excel表格中。我们定义一个VS DisplayInExcel()函数用于创建Excel表格,然后将容器中的账号数据填充到Excel表格中:

  1. public static void DisplayInExcel(IEnumerable<Account> accounts,  
  2. Action<Account, Excel.Range> DisplayFunc)  
  3. {  
  4. var xl = new Excel.Application();  
  5.  
  6. xl.Workbooks.Add();  
  7. xl.Visible = true;  
  8. xl.Cells[1, 1].Value2 = "Name";  
  9. xl.Cells[1, 2].Value2 = " Balance";  
  10. xl.Cells[2, 1].Select();  
  11. foreach (var ac in accounts)  
  12. {  
  13. DisplayFunc(ac, xl.ActiveCell);  
  14. xl.ActiveCell.get_Offset(1, 0).Select();  
  15. }  
  16.  
  17. xl.get_Range("A1:B3").Copy();  

然后,我们在Main()函数的底部,按照如下的方式调用VS DisplayInExcel()函数,最终完成Excel表格的创建和数据的填充:

  1. DisplayInExcel(checkAccounts, (account, cell) => 
  2. {  
  3. // This multiline lambda will set  
  4. // custom processing rules.  
  5. cell.Value2=account.Name;  
  6. cell.get_Offset(0, 1).Value2 = account.Balance;  
  7.  
  8. if (account.Balance < 0)  
  9. {  
  10. cell.Interior.Color = 255;  
  11. cell.get_Offset(0, 1).Interior.Color = 255;  
  12. }  

#t#这里我们使用了Lambda表达式,由它来对数据填充的逻辑进行具体的定义,最终完成数据的填充。同时,它还会检查Balance的值,如果为负值,则将表格填充为红色,表示这个账号已经赤字了。最后,为了使得Excel表格更加美观,我们让Excel表格根据内容自动调整表格的宽度。在VS DisplayInExcel()函数的末尾,我们添加如下的代码:

xl.Columns[1].AutoFit();
xl.Columns[
2].AutoFit();

在这里,有过Office开发经验的朋友可能会感到奇怪,AutoFit()函数可以被Columns的返回结果直接调用而无需进行类型转换吗?的确,在C# 3.0中,要想调用AutoFit()函数,必须对Columns的返回值进行类型转换,上面的代码应该写成:

  1. // C# 3.0 code. Not necessary in C# 4.0!  
  2. ((Range)xl.Columns[1]).AutoFit();  
  3. ((Range)xl.Columns[2]).AutoFit(); 

但是在C# 4.0中,因为有了dynamic类型的支持,繁琐的类型转换将不再需要。在C# 4.0中,从COM接口返回的Object类型的对象,被自动当做dynamic类型来处理。我们前面曾经介绍过,因为动态类型的迟绑定特性(late binding),dynamic类型可以调用任何函数,所以无需再进行类型转换,也不会产生编译错误。在运行的时候,动态语言运行时(DLR)会动态查找对象真正的类型而调用相应的函数。

责任编辑:佚名 来源: NET130
相关推荐

2010-10-25 17:28:05

Oracle bita

2010-10-25 15:12:42

Oracle日期函数

2010-10-14 14:01:35

MySQL CONVE

2009-12-14 14:00:39

VS 关系图

2009-12-14 10:47:51

VS文档

2009-12-09 13:41:04

VS 2003 报错

2010-10-11 16:19:30

Mysql聚合函数

2010-10-25 14:47:49

Oracle系统变量函

2010-02-01 10:04:25

Python模板函数

2009-12-14 17:19:24

VS 2008简介

2010-10-25 17:39:24

Oracle单行日期函

2011-04-12 13:27:09

Oracle日期函数

2010-04-01 09:34:06

Oracle函数

2009-08-20 14:28:00

C#静态构造函数

2009-12-11 14:38:06

VS2003安装程序

2009-12-11 15:38:40

VS2008编译器

2010-04-27 12:51:49

Oracle 函数de

2009-11-30 11:05:19

VS2003 WebS

2010-06-01 14:07:56

2010-09-27 16:38:19

Sql Server日
点赞
收藏

51CTO技术栈公众号