您的位置:首页 > 编程语言 > C#

vs2010自带C# 4.0 示例_语言示例_第一部分

2012-02-07 11:20 120 查看
1.命名参数和可选参数

View Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Word = Microsoft.Office.Interop.Word;
using Excel = Microsoft.Office.Interop.Excel;
namespace office示例
{
public class Account
{
public int ID { get; set; }
public string Name { get; set; }
public double Balance { get; set; }
}
class Program
{
static void Main(string[] args)
{
var getAccounts = new List<Account> {
new Account{ ID=123, Name="王芬芬", Balance=2900},
new Account{ID=356,Name ="泉清",Balance =-1800}
};

DisplayExcel(getAccounts, (account, cell) => {
//自己定义委托的方法主题   (该方法的两个参数 account与cell的类型已经被委托DisplayFunc确定了)
cell.Value = account.ID;
cell.Offset[0, 1].Value = account.Name;
cell.Offset[0, 2].Value = account.Balance;

//金额若是负数,红色提醒显示
if (account.Balance < 0)
{
cell.Interior.Color = 255;//红色
cell.Offset[0, 2].Interior.Color = 255;
}
});

//copy到word中
var word = new Word.Application();
word.Visible = true;//显示
word.Documents.Add();//新建文档
word.Selection.PasteSpecial();
//word.Selection.PasteSpecial(Link: true, DisplayAsIcon: true);
}
static void DisplayExcel(IEnumerable<Account> accounts,
Action<Account, Excel.Range> DisplayFunc /*两个参数的委托*/)
{
//启动Execl
var x1 = new Excel.Application();//启动一个新的Excel程序实例(x1);
x1.Workbooks.Add();//新建excel
x1.Visible = true;//可以显示看见
x1.Cells[1, 1] = "ID"; x1.Cells[1, 2] = "姓名"; x1.Cells[1, 3] = "金额";//完成列标题
x1.Cells[2, 1].Select();//定位到第二行
//显示每个帐户信息
foreach (var ac in accounts)
{
DisplayFunc(ac, x1.ActiveCell);//执行委托
x1.ActiveCell.Offset[1, 0].Select();//定位到下一行,否则会造成覆盖
}

//实现复制
x1.Range["A1:C3"].Copy();//Excel显示上看起来有虚线框,为了copy到word中
//自动调整列的宽度
x1.Columns.AutoFit();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: