none
excel.Cells和sheet.Cells区别 RRS feed

  • 问题

  • Excel.Application excel = new Excel.Application();

    Excel.Workbook book = excel.Workbooks.Add(true);

    Excel.Worksheet sheet = (Excel.Worksheet)book.ActiveSheet;

    上面是定义

    sheet.Cells[2, 3] = "所有";

    excel.Cells[2, 3] = "所有";

    这两种写法,产生结果似乎一样的,他们有什么区别?excel和sheet又有什么区别?

    2010年11月20日 0:52

答案

  • 您好,您會有這樣的結果,主要是因為您新開 Excel 應用程式,並且新增了一個 Wordbooks,又把 Sheet 指定為目前 ActiveSheet,所以才能得到

    sheet.Cells[2, 3] = "所有"; 與 excel.Cells[2, 3] = "所有"; 一樣的結果,實際上是有差別的,您可以參考 Excel 对象模型概述

    Application 对象

    Excel Application 对象表示 Excel 应用程序本身。Application 对象公开了大量有关正在运行的应用程序、应用于该实例的选项以及在该实例中打开的当前用户的对象的信息。

    Workbook 对象

    Microsoft.Office.Interop.Excel.Workbook 类表示 Excel 应用程序中的单个工作簿。Visual Studio Tools for Office 通过提供 Microsoft.Office.Tools.Excel.Workbook 类(使用该类可以访问 Workbooks 集合的所有成员)以及数据绑定功能和附加事件来扩展 Microsoft.Office.Interop.Excel.Workbook 类。

    Worksheet 对象

    Microsoft.Office.Interop.Excel.Worksheet 对象是 Worksheets 集合的成员。Microsoft.Office.Interop.Excel.Worksheet 的许多属性、方法和事件与 ApplicationMicrosoft.Office.Interop.Excel.Workbook 类提供的成员完全相同或相似。


    歡迎參觀我的Blog.NET菜鳥自救會
    2010年11月20日 2:37
  • 我猜测,因为一个Excel文件可以包含多个sheet.所以,作用范围应该不同

    sheet.Cells[2, 3] = "所有";这个只是针对特定的Sheet起作用。

    excel.Cells[2, 3] = "所有";这个语句会对Excel里的全部Cell对象赋值。不论它属于哪个Sheet。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    2010年11月22日 4:17
    版主

全部回复

  • 您好,您會有這樣的結果,主要是因為您新開 Excel 應用程式,並且新增了一個 Wordbooks,又把 Sheet 指定為目前 ActiveSheet,所以才能得到

    sheet.Cells[2, 3] = "所有"; 與 excel.Cells[2, 3] = "所有"; 一樣的結果,實際上是有差別的,您可以參考 Excel 对象模型概述

    Application 对象

    Excel Application 对象表示 Excel 应用程序本身。Application 对象公开了大量有关正在运行的应用程序、应用于该实例的选项以及在该实例中打开的当前用户的对象的信息。

    Workbook 对象

    Microsoft.Office.Interop.Excel.Workbook 类表示 Excel 应用程序中的单个工作簿。Visual Studio Tools for Office 通过提供 Microsoft.Office.Tools.Excel.Workbook 类(使用该类可以访问 Workbooks 集合的所有成员)以及数据绑定功能和附加事件来扩展 Microsoft.Office.Interop.Excel.Workbook 类。

    Worksheet 对象

    Microsoft.Office.Interop.Excel.Worksheet 对象是 Worksheets 集合的成员。Microsoft.Office.Interop.Excel.Worksheet 的许多属性、方法和事件与 ApplicationMicrosoft.Office.Interop.Excel.Workbook 类提供的成员完全相同或相似。


    歡迎參觀我的Blog.NET菜鳥自救會
    2010年11月20日 2:37
  • 我猜测,因为一个Excel文件可以包含多个sheet.所以,作用范围应该不同

    sheet.Cells[2, 3] = "所有";这个只是针对特定的Sheet起作用。

    excel.Cells[2, 3] = "所有";这个语句会对Excel里的全部Cell对象赋值。不论它属于哪个Sheet。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    2010年11月22日 4:17
    版主
  • 你好 你可以查看MSDN http://msdn.microsoft.com/zh-cn/library/ms262200%28v=Office.11%29.aspx

    Cells Returns a Range object that represents all the cells on the active worksheet. If the active document isn’t a worksheet, this property fails.”

    Application的Cells属性返回一个Range对象,这个Range对象代表目前处于Active的Worksheet上的所有Cells

    所以和你Excel.Worksheet sheet = (Excel.Worksheet)book.ActiveSheet;这里的sheet使用的其实是一致的。


    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    .NET交流群71840452
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China
    2010年11月22日 8:36
    版主