【发布时间】:2013-04-07 16:16:13
【问题描述】:
关于这个主题的许多其他问题,我仍然没有找到可以避免我的问题的东西。
我想知道剪贴板在复制粘贴处理方面有哪些限制,并针对特定用途和程序 ID 限制其复制粘贴功能。
因为,我一直在为我的公司开发一个软件,该软件采用 Word/Excel 和 PowerPoint 中的模板,通过每天更换图片并粘贴模板中的新图表和图片来自动生成报告。
但是,我担心,因为它似乎存在一些关于复制到剪贴板的限制
CopyBitmapToClipboard
ActiveWindow.View.PasteSpecial()
当我将表格/图像复制到剪贴板并将其粘贴到 Word/Excel/PowerPoint 中时,这很好,但如果我现在有 10 个同时生成的并行报告并使用复制粘贴机制,它会发生它会将其复制到另一个报表当前正在使用的 Word/Excel/PowerPoint 中。
考虑到,我有 1 个文档,并且将一个巨大的表格复制到剪贴板到 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 个复制粘贴/报告。这是不可能的。一个文档永远不会花费至少 1 秒的时间来完成(对于大约 20 页的报告、带有 30 张幻灯片的 powerpoint、带有 6 张的 excel 工作表)。如何避免复制到剪贴板的内容被粘贴到错误的文档中,因为两个文档都使用了粘贴功能。
所以,我想知道,是否可以在我的剪贴板中提供参考,告诉他,只复制他的 word/excel/powerpoint 中的内容,而不是复制我刚刚复制的内容 CTRL +C 和 CTRL+V 在错误的文档中?
目前,我们每天要生成大约 50 份报告(考虑到几个月前我们有 2 份报告要生成),这些报告计划以 5 分钟为间隔,但是我们将有 86400 的那一天会发生什么每日报告生成?复制粘贴功能会搞砸所有报告并粘贴到错误的报告中。我可能不会在那里提供帮助,但我想防止这种影响。
我正在用 C#/.NET 编写我的软件,但我无法在其中编写来捕捉当前计划/报告是否正在生成,因为我运行了一个 .bat 来执行使用我编写的程序创建报告。
**已编辑: 我的 .bat 的内容是: myprogram.exe /objectsourceprogram="" /sourcefile="my template.doc/xls/ppt" /destinationfile="my destination.doc/xls/ppt"
我只是在调度我的批处理文件,唯一可以做的就是等待一个调度完成后再开始下一个调度,但这会产生间隔
【问题讨论】:
-
你没有比复制粘贴更好的选择吗?也许您可以使用这两个应用程序的 API 将数据从一个应用程序移动到另一个应用程序。
-
您可以使用 OLE 插入图表/等,而不是复制/粘贴
-
我将图片保存在一个临时文件中,这有助于我避免复制粘贴过程,但表格被复制到剪贴板中,因为我的公司希望我在另一侧为 PowerPoint 再次生成一个真实的表而不是图像。我正在使用 NetOffice(微软的一种处理方式)。
-
@mike27015 为什么不直接用 Excel 中的数据在 PPT 中建表呢? PPT 表格的 VBA 导航并不难,如果您愿意,我可以发布一个示例。
-
@DavidZemens 我没有为 VBA 实现任何代码。原因?您在 VBA 中一次又一次地创建相同的代码,这又是手动工作,需要时间来避免。如前所述,复制粘贴程序的问题将在未来出现,届时每天将有 86k 份报告要做。表格,一切都正确完成了,只有当多个文档打开时复制/粘贴将不起作用,它会将其粘贴到错误的一个。
标签: c# excel ms-word powerpoint copy-paste