【发布时间】:2015-12-07 02:32:18
【问题描述】:
在过去的两个小时里,我搜索了这个很棒的网站,但在查看类似帖子时找不到解决方案。
我正在通过第三方工具创建动态 .docx 文件。
我需要做什么:
- 打开每个文件
- 选择所有内容
- 将内容复制到 Windows 剪贴板
创建 Word 宏是同步的,因为这两行会选择所有内容并为我复制内容。
Selection.WholeStory
Selection.Copy
有谁知道如何将这两行代码转换为等效的 C# 代码?我不确定在我的情况下运行外部宏是否理想,因为某些将使用包括将数据临时复制到剪贴板的整体工具链的用户将不允许运行 Office 宏 - 公司政策。
使用 C#,我尝试了以下操作。我正在做的是打开一个 .docx 文件,选择正文内容并尝试将其复制到 Windows 剪贴板。我无法让它工作。
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using System;
namespace copy_docx_clipboard
{
using System.Windows.Forms;
internal class Program
{
[STAThread]
private static void Main(string[] args)
{
string fileName = @"C:\out\table_42.docx";
using (WordprocessingDocument wordDocument = WordprocessingDocument.Open(fileName, false))
{
Body body = wordDocument.MainDocumentPart.Document.Body;
Clipboard.Clear();
Clipboard.SetDataObject(body, true, 5, 200);
Console.WriteLine("done");
Console.ReadKey();
}
}
}
}
我将内容复制到 Windows 剪贴板的原因是另一个工具,在这个工具链中,将是接收器。我知道剪贴板文本,但我无法使用它,因为将复制的一些数据将是 Word 表格、图片、数字、摘录 - 基本上它将是动态的。
任何见解、提示、指向文档都将不胜感激。
【问题讨论】:
-
所以你说的工具可以和
WordprocessingDocument一起工作? -
这里涉及到几个工具,所以希望这更清楚。工具 A 生成我解析的 .DOCX 文件。无论如何,我无法控制工具 A。我编写了工具 B,它将解析来自创建 N .docx 文件的工具 A 的内容。工具 C,我的帖子是关于,是打开一个工具 B 文件让我将内容复制到剪贴板以在工具 D 中使用。工具 D 可以读取 Windows 剪贴板,不幸的是,它的 API 非常有限。
-
而且,工具 D 不能与 WordprocessingDocuments 一起使用
-
那么工具 D 可以用来做什么呢?剪贴板可以有什么?是否只想将字符串内容复制到剪贴板?