




Вы пробовали отформатировать его как таблицу HTML?
Прошло некоторое время с тех пор, как я занимался программированием для Windows, но я, кажется, помню, что вы регистрируете формат объекта. Фактически, вы можете зарегистрировать несколько объектов разных форматов, и приложение вставки может выбирать между ними (например, с опцией Word Paste Special).
Я бы попытался создать объект таблицы Word, заполнить его ячейки своими данными, а затем скопировать их в буфер обмена.
Буфер обмена Windows поддерживает несколько форматов. Когда вы хотите поместить что-либо в буфер обмена, вы делаете один или несколько вызовов RegisterClipboardFormat (), сообщая ему форматы объектов, которые вы будете помещать в буфер обмена, а затем вызываете SetClipboardData (), который фактически помещает данные в буфер обмена. .
Если вы хотите вставить таблицу в Word, то HTML - самый простой формат для работы. Просто скопируйте таблицу HTML в буфер обмена, и она будет корректно вставлена в Word при условии, что вы сначала зарегистрируете данные буфера обмена как объект HTML.
Я бы дал вам код, но проще всего сослаться на пример в MSDN:
Как добавить HTML-код в буфер обмена с помощью Visual Basic
На этой странице даже показан пример копирования таблицы HTML в буфер обмена.
Я получил эту работу, но обнаружил, что я не могу вставлять данные ячейки таблицы в существующую таблицу Word, так же, как вы можете с копированием и вставкой между таблицами Word. Вместо этого данные таблицы буфера обмена отображаются как вложенная таблица в одной ячейке таблицы Word. Чтобы это работало, вероятно, требуется детальное понимание того, что Word ожидает найти в буфере обмена.
Чтобы вставить ячейки таблицы в таблицы Word, как это делает Word, я предполагаю, что мне нужно поместить формат RTF в буфер обмена.
Буфер обмена великолепен ... Но что-то кажется немного схематичным в использовании его для хранения выходных данных вашей программы для вставки в Word. Что вы пытаетесь сделать из того, что вам, вероятно, следует делать по-другому?
Не работает. Вам нужно указать буферу обмена, что это таблица HTML, когда вы ее копируете, чтобы это работало.