复制到剪贴板限制

和其他许多关于这个话题的问题一样,我仍然没有find可以避免我的问题的东西。

我想知道剪贴板在复制粘贴处理方面的局限性,并限制其复制粘贴function的具体用法和程序ID。

因为我一直在为我公司开发一个软件,它使用Word / Excel和PowerPoint中的模板,通过每天更换图片并粘贴新graphics和模板中的图片来生成自动生成的报表。

但是,我害怕,因为它似乎存在一些复制到剪贴板的限制

CopyBitmapToClipboard ActiveWindow.View.PasteSpecial() 

当我将表格/图像复制到剪贴板并将其粘贴到Word / Excel / PowerPoint中时,这很好,但如果现在有10个同时生成的并行报告并使用复制粘贴机制,则会发生这种情况它会将其复制到另一个报表当前正在使用的Word / Excel / PowerPoint中。

考虑到,我有一个文件,并复制到剪贴板是一个巨大的幻灯片,将采取最好的情况下1秒(这不),这意味着在1天,我可以产生一个最大的

 1 copy paste procedure = 1 second 1minute = 60 second means 60 copy paste 1hour = 60min x 60 copy paste 1day = 24hours x 3600 copy paste 

意味着我总共有86400个复制粘贴/报告。 这是不可能的。 一份文件永远不会占用最less1秒的时间(对于大约20页的报告,30张幻灯片,Excel表格和6张表格)。 如何避免将复制到剪贴板的内容粘贴到错误的文档中,因为这两个文档都使用了粘贴function。

所以,我想知道,如果可以给我的剪贴板提供一个参考,告诉他,只复制word / excel / powerpoint中的内容,而不是复制我刚才复制的CTRL + C和在错误的文件中做CTRL + V?

目前,我们每天有大约50个报告产生(考虑到几个月前我们有两个报告产生),这些报告是按照5分钟的时间间隔安排的,但是当天我们将有86400个日常报告生成? 复制粘贴function将搞乱所有报告并粘贴错误的报告。 我可能不会在那里协助,但我想阻止这种影响。

我正在用C#/ .NET编写我的软件,但是如果正在生成当前的日程安排/报告,我不能在其中写入,因为我运行了一个.bat ,用我编写的程序创build报告。

**编辑:我的.bat的内容是:myprogram.exe / objectsourceprogram =“”/ sourcefile =“my template.doc / xls / ppt”/ destinationfile =“my destination.doc / xls / ppt”

我只调度我的batch file,唯一可以做的是,等待一个调度正在完成,然后开始下一个调度,但是这将创buildintervales

我已经在Word和Excel中处理了自动生成的报告。 你这样做的速度很慢,难怪它太慢了 – .NET COM互操作是非常慢的,然后你的进程利用其他线程,所以现在你必须在线程之间进行编组和同步,因为Office是单线程的。

复制/粘贴是一个高级的用户function,你可以用它作为黑客,但依赖它作为执行你的任务的主要方式是一个糟糕的select。

更好的select:Office API(VSTO,任何人?) – 我敢肯定,无论您提出的报告是通过API重现的。 当心 – 太多的API调用和你的函数可以工作得更慢。

最佳select:OpenXML SDK。 这里的学习曲线可能会很陡峭,因为您仍在使用复制/粘贴,但收益是您的文档处理时间将缩短几个数量级。