microsoft interop excel get_Range

时间:2014-07-23 18:14:45

标签: c# excel interop

我开发了一个异步套接字方法,以便从其他应用程序接收文本并将其显示在Excel工作表中。 当AsyncCallback方法收到信息时,它会尝试在Excel工作表中编写此消息。

一切正常,但如果在同一时刻执行该方法,我正在编辑另一个单元格,ws.get_Range(" A1")。值不起作用。 我能解决吗?有没有其他方法可以强制性地在Excel的任何其他事件上设置此消息?

private void MessageCallBack(IAsyncResult aResult)
{
    try
    {
        byte[] receivedData = new byte[10];
        receivedData = (byte[])aResult.AsyncState;

        ASCIIEncoding aEncoding = new ASCIIEncoding();
        string receivedMessage = aEncoding.GetString(receivedData);

        Worksheet ws = SingletonExcel.getWorksheet();
        ws.get_Range("A1").Value = receivedMessage 
     }
     catch (Exception ex)
     {
         MessageBox.Show("the Cell A1 has not modifed: " + ex.Message);
     }
}

1 个答案:

答案 0 :(得分:0)

您可以在设置值之前尝试激活工作表。我不确定原因,但如果您使用的对象不活动,Excel api有时无法检索值。

ws.Activate()