C#4.0新Feature官方文檔和Sample Code下載 [本文提供Office編程的一段Sample Code作為預覽]

來源:互聯網
上載者:User

先把重點寫在前頭:

http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=csharpfuture&ReleaseId=1686

以上這個地址是下載官方C#4.0的最新文檔和Sample Code,而以下正是我看到第一個例子,關於Office的操作。可見它的例子品質還是蠻高的,值得學習,所以分享給大家,也許有些人已經知道這個連結,如果不能下載,留言告訴我,我到時下載到cnblogs裡。

 

前言:

從C#1.0,2.0,3.0,4.0一路走來,我們可能不是去掌握它的技術,而是掌握它為什麼會這樣變化,從2.0的泛型,到3.0的Lamda,Linq,集合對象初始化等,再到現在4.0的動態編程,選擇性參數等,微軟的種種更新讓我們都跟著很累,但是,如果我們深入進去多看看“為什麼”,也許就不是很累,而是會發現這些更新都是必然。

下面代碼在.NET4.0環境下編譯,是關於將一些資料寫入Excel並操作Word的一小段代碼,代碼很簡單,但需要注意到是下面的一些C#3.0/4.0裡的知識,如Lamda, Named Parameter等。

原始碼

using System;
using System.Collections.Generic;

using Excel = Microsoft.Office.Interop.Excel;
using Word = Microsoft.Office.Interop.Word;
namespace Zivsoft.OfficeDemo
{
    /// <summary>
    /// 網域名稱資訊
    /// </summary>
    public class DomainInfo
    {
        public string DomainName { get; set; }
        public string Owner { get; set; }
    }

    public class Program
    {
        /// <summary>
        /// 入口
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            //注意定義方式(C#3.0)
            var checkAccounts = new List<DomainInfo> {
                   new DomainInfo {
                                      DomainName = "www.zivsoft.com",
                                      Owner = "zivsoft"
                               },
                   new DomainInfo {
                                      DomainName = "lihua.club.officelive.com",
                                      Owner = "microsoft"
                               }
               };

            DisplayInExcel(checkAccounts, (domain, cell) =>//注意參數2, Lambda, domain是自訂類DomainInfo,cell是Excel.Range
            {
                // Lambda內部業務
                cell.Value2 = domain.DomainName;
                cell.get_Offset(0, 1).Value2 = domain.Owner;

                if (domain.Owner == "zivsoft")//如果owner是zivsoft,改變顏色
                {
                    cell.Interior.Color = 255;
                    cell.get_Offset(0, 1).Interior.Color = 255;
                }
            });

            //操作Word對象
            var word = new Word.Application();
            word.Visible = true;
            word.Documents.Add();
            word.Selection.PasteSpecial(Link: true, DisplayAsIcon: true);//注意這是C#4.0中選擇性參數用法
        }

        public static void DisplayInExcel(IEnumerable<DomainInfo> accounts,
                               Action<DomainInfo, Excel.Range> DisplayFunc)//參數2中的Action是一個泛型delegate
        {
            //操作Excel對象
            var xl = new Excel.Application();

            xl.Workbooks.Add();
            xl.Visible = true;
            xl.Cells[1, 1] = "網域名稱";
            xl.Cells[1, 2] = "擁有者";
            xl.Cells[2, 1].Select();
            foreach (var ac in accounts)
            {
                DisplayFunc(ac, xl.ActiveCell);
                xl.ActiveCell.get_Offset(1, 0).Select();
            }

            xl.get_Range("A1:B3").Copy();

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

 

程式運行結果

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.