【问题标题】:How to get cell name from an excel sheet in C# using late binding?如何使用后期绑定从 C# 中的 excel 工作表中获取单元格名称?
【发布时间】:2015-04-28 07:41:14
【问题描述】:

我正在尝试从 Excel 表中获取单元格名称,例如 A1,B1,A2,B2

这是我的代码

object objCellText = Cells.GetType().InvokeMember("Item", 
                        BindingFlags.GetProperty,null,Cells, 
                        new object[] { RowIndex, ColIndex });

var CellText = objCellText.GetType().InvokeMember("Value",
                        BindingFlags.GetProperty, null, objCellText, null);

var CellName = objCellText.GetType().InvokeMember("Name",
                        BindingFlags.GetProperty, null, objCellText, null);

在代码中,Name 属性不起作用。

提前感谢您的帮助!

【问题讨论】:

  • 你为什么使用反射而不是动态类型?使用dynamic 代替对象,这样你就可以写Cells.Itemcell.Value
  • @Panagiotis Kanavos 我不仅要获取项目或值,还需要单元格背景颜色、字体样式等,所以我正在使用对象..
  • 使用dynamic 也可以调用它们。添加它是为了使此类场景更容易更快。
  • @Panagiotis Kanavos ..谢谢。

标签: c# excel late-binding


【解决方案1】:

这是因为 Cell 的名称​​不是它的地址。您可以使用描述性名称命名一个单元格或单元格范围,例如“费用”。 A2A2:B2 是单个单元格或单元格范围的地址。命名范围可以在公式中使用,例如SUM(Expenses),就像范围地址SUM(A1:B2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 2022-11-04
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多