我正在开发一个通过COM端口接收数据的应用程序,需要将其粘贴到Microsoft Office程序中(目前,我正在使用Word,但它将支持Excel,PowerPoint,...)。 / p>
我认为一个好主意是将这些数据复制到剪贴板,然后将其粘贴到任何打开的应用程序窗口(例如,LibreOffice应用程序和记事本工作完美)。为此,我编码:
if (booleanIncomingData)
{
booleanCopy = true;
}
else if (booleanOutcomingData)
{
copy = false;
}
if (copy)
{
Clipboard.SetText(myString);
}
else
{
SendKeys.Send("^V");
SendKeys.Send("{ENTER}");
}
正如我所说,LibreOffice程序和记事本工作完美,但Word和Excel没有做我认为他们应该做的事情(基本上显示任何数据,然后跳转到下一行)。
另外,一个简单的
Clipboard.GetText()ç
不起作用(我的感觉是因为它试图将内容粘贴到活动窗口中。
在网上寻找Interop.Word解决方案,到目前为止还没有成功。有谁知道我能做什么或我应该寻找什么?我应该实现Office附加组件而不是常规的Win32应用程序吗?
如果需要任何其他信息,请随时提出要求。
塞萨尔。
答案 0 :(得分:1)
它比我想象的要复杂得多。但我现在的应用程序现在可以使用几种软件(Word,Excel,Notepad,LibreOffice,......)。
COPY / PASTE DATA
获取活动窗口
MICROSOFT OFFICE
总而言之,Microsoft Office应用程序更加繁琐,正如@Brian建议的那样,PIA(主要互操作程序集)在此任务中至关重要。