2

我有这个 .NET 4.0 代码:

var myTable = tables[1];
myTable = tables.Item["Table1"];
myTable = tables.OfType<Excel.ListObject>().FirstOrDefault(t => t.Name == "Table1");

我正在尝试使用 .NET 3.5 进行编译并遇到一堆错误:

错误 23 语言不支持属性、索引器或事件“项目”;尝试直接调用访问器方法“Microsoft.Office.Interop.Excel.ListObjects.get_Item(object)”

错误 24“Microsoft.Office.Interop.Excel.ListObjects”不包含“OfType”的定义,并且最佳扩展方法重载“System.Linq.Queryable.OfType(System.Linq.IQueryable)”有一些无效参数

错误 25 实例参数:无法从“Microsoft.Office.Interop.Excel.ListObjects”转换为“System.Linq.IQueryable”

您能否指导我了解这些错误的确切含义,以便我可以尝试将其转换为 .NET 3.5?

非常感谢您的建议。

4

1 回答 1

2

这个问题指的是给出的答案这个命令需要至少两行源数据;该代码显示了在代码中访问表/列表对象的 3 种不同方式。

这是我发布的代码:

    var myTable = tables[1];
    var myTable = tables.Item["Table1"];
    var myTable = tables.OfType<Excel.ListObject>().FirstOrDefault(t => t.Name == "Table1");

我的意思是说明在代码中访问表有不同的方法。

为了把它放在上下文中,我创建了一个带有一个名为“TestButton”的按钮的功能区。这是整个代码,应该适用于 3.5:

using Excel = Microsoft.Office.Interop.Excel;


    private void TestButton_Click(object sender, RibbonControlEventArgs e)
    {
        var worksheet = (Excel.Worksheet) Globals.ThisAddIn.Application.ActiveSheet;
        var tables = worksheet.ListObjects;
        var table = tables.Item["Table1"]; // this is the line you are referring to

        //do something with table
    }
于 2012-10-17T22:39:20.177 回答