我正在尝试使用UIAutomation获取Excel 2016单元格的内容。我想获取鼠标光标位置下的单元格内容。
我有一种方法来捕捉鼠标光标位置下的元素
private void CaptureMousePosition()
{
try
{
var cursorPosition = Cursor.Position;
var automationElementAtCursorPosition = AutomationElement.FromPoint(new Point(cursorPosition.X, cursorPosition.Y));
AppendElementInformation(automationElementAtCursorPosition);
}
catch (Exception ex)
{
//error treatment
}
}
一种记录光标所在元素的方法
private void AppendElementInformation(AutomationElement ae)
{
var aeTextElement = ae.GetElement();
var aeTextElementToString = aeTextElement != null ? aeTextElement.ToString() : "No information to log.";
textBox1.AppendText(aeTextElementToString);
}
当我尝试捕获en excel按钮的文本时,没有问题,我得到这个日志:
自动化元素:ControlType = ControlType.Button,Text = Fusionner et centrer,ElementBounds = 2248; 107; 134; 23,Visible = True
但是当我想获得一个未处于编辑模式的Excel单元格的文本时,我得到了这个日志:
自动化元素:ControlType = ControlType.Pane,Text = Classeur1,ElementBounds = 1680; 253; 1680; 745,Visible = True
Aaaand,当我在细胞上双重clic时,我可以得到这个细胞的文字:
Automation Element:ControlType = ControlType.Edit,Text = Hi Stackoverflow,ElementBounds = 2266; 413; 159; 19,Visible =
有没有人知道如何在单元格上没有双clic的情况下获取Excel 2016单元格的内容?只需用鼠标光标位置。
感谢。