这种隐藏了的对象怎么调用呢?http://msdn.microsoft.com/zh-tw/library/microsoft.office.interop.excel.arcs(v=office.11).aspx

解决方案 »

  1.   

    引用Excel,产生互操作程序集,自然就可以调用。
      

  2.   


    本人前些日子正好接触了一下Office PIA编程.说实话这东西根本算不上什么有难度的东西,还是挺简单的,但它也算不上多么好的解决方案,有其他的更好的方案.要不是我们项目里面的领导的意见,我才懒得用Office PIA呢。写了若干经验总结的小文,感兴趣的话请您移步到鄙人的博客:http://blog.csdn.net/xinyaping/article/category/1072388Notes: 并非为了给我自己的博客打广告。如果您觉得有广告之嫌,请不要访问就是了。
      

  3.   

    如果有Office PIA方面的疑问,无论在帖子里继续发问,还是在我的博客上面留言,都可以。本人愿意在有时间、项目任务不太紧的情况下,在论坛里或在博客里进行解答。
      

  4.   


    你的问题可能问得不太好你所谓的“隐藏了的对象”是什么呢?是你在编程中找不到某个类的定义,或者不知道需要添加哪个reference?请说得更详细一点,谢谢。
      

  5.   

    不知道需要添加哪个reference
    我使用vb.net总是说我没引用接口。
      

  6.   

    请您打开MSDN帮助文件。
    搜索WORKSHEET,查看里面对象成员。里面有一些成员属于。”基础结构“
    就是这种对象不会用,请高手解决。
      

  7.   

    我猜你是缺少这个引用:Microsoft.Office.Interop.Excel它存在于Microsoft.Office.Interop.Excel.dll中。
    而Microsoft.Office.Interop.Excel.dll在哪里呢?当你安装了Office PIA (Office Primary Interop Assembly)之后,就有了。正如Office有不同的版本,Office 2010、Office 2007、Office 2003,Office PIA也有不同的版本。Office PIA的安装,以及不同版本的Office PIA里面都有些什么东西,在MSDN的这个文档里面叙述得非常清楚:http://msdn.microsoft.com/en-us/library/15s06t57.aspx
      

  8.   

    安装完Office PIA之后,你就能得到相应的DLL。比如说在我的机器上,可以在下列目录中找到Office PIA的DLL:C:\Program Files\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA
    (你自己的机器上,目录可能和我的稍有区别,跟你的安装目录、VS的版本有关。相信你很容易找到。)如果遇到Office PIA的DLL的部署问题请继续问。假如没遇到这方面问题我就不啰嗦了。
      

  9.   

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Xml.Linq;
    using Microsoft.Office.Tools.Excel;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    using Excel = Microsoft.Office.Interop.Excel;
    using Office = Microsoft.Office.Core;
    都有啊。MSDN上说Arcs是基础结构。
    但是无论怎么引用,都出不来这个。后来我看到VB,才知道它需要引用这个接口,可是引用了,还是说找不到接口对象。
    你可以试试。
      

  10.   

    你给的那个MSDN的Link,里面说得明明白白:Namespace: Microsoft.Office.Interop.Excel
    Assembly: Microsoft.Office.Interop.Excel (in microsoft.office.interop.excel.dll)
      

  11.   

    我那边对象列表里面,弹出来找不到这个ARCS,你的能找到吗?
      

  12.   


    我刚才自己也试了一下。其实你在using里面列的那么多namespace里面,和Arcs有关的,只有这一个:
    using Excel = Microsoft.Office.Interop.Excel;我也同样给Microsoft.Office.Interop.Excel起了个别名Excel,和你一样。所以,我在代码中是这样引用这个类的:Excel.Arcs我引用的DLL是来自Office 2003 PIA里面的Microsoft.Office.Interop.Excel.dll无图无真相。请看我的截图:我的Visual Studio显然是识别出来Arcs这个interface了:
      

  13.   

    看到了,我的习惯是:excel.后面弹出对象列表框,然后鼠标点击选择,为什么这个对象他不弹出来,要自己手输入?
      

  14.   


    这就属于另外一个领域的问题了,跟Office PIA没有必然关系了。如果是原生的.Net的定义,当然不会遇到这问题。
    但是因为是Interop的DLL里面定义的interface,所以情况另当别论了。这个我们只能去适应,并且多查MSDN,没有别的好办法。
      

  15.   

    这个问题涉及到.Net与COM组件的互操作性。知道属于哪方面问题就行了,想深入了解的话去看看关于互操作性方面的详细介绍。
      

  16.   

     Excel.Arcs arc;
    arc = this.Worksheets[1].Arc;
    这样不行啊。
      

  17.   

      Excel.Arcs arc;
                arc = this.Worksheets[1].Arcs;
                Globals.Sheet1.Range["a1"].Value = arc.Text;获取不了类的对象。
      

  18.   

    我确实没有用过Arcs这个interface,我注意到关于Arcs Interface,MSDN上有句话:
    This interface supports the .NET Framework infrastructure and is not intended to be used directly from your code. 请翻译一下这句话什么意思。能直接告诉我你想要实现什么功能,好吗?
      

  19.   

    谢谢,确实很有耐心,佩服了。
    我并不是想用它,因为从来没用过这个对象属性,想好奇试试。
    这句话的意思是:此 API 支持 Visual Studio Tools for Office 基础结构,不适合在代码中直接使用。
      

  20.   

    既然微软都建议不要直接在代码中用它了,又既然你目前并没有实际要实现的功能非用它不可,那么我们就暂时无视它吧。:-)反正Office PIA的基本原理搞清楚就行了,等真正实现产品功能的时候再结合实际需求去探索。