|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.11.2010, 19:27 | #1 |
Форумчанин
Регистрация: 27.09.2010
Сообщений: 376
|
Из ячейки таблицы Microsoft Word в RichEdit
Здравствуйте
У меня есть таблица в MS Word в которой в столбцах содержится отформатированный текст (индексы, курсив). Нашел решение по получению из таблицы и вставке в StringGrid текста из ячеек таблицы MS Word (http://disketa.info/page.asp?page=doc&idd=1573&raz=10): ... CellText := Table.Cell(jGridCols, iGridRows).Range.FormattedText; ... Stringgrid1.Cells[iGridRows, jGridCols] := CellText; После небольшой переделки для RichEdit получил: ... Table.Cell(jGridCols, iGridRows).Range.Copy; ... RichEdit1.PasteFromClipboard; Текст вставляется в RichEdit отформатированным, НО вместе с рамкой ячейки. Пожалуйста, покажите кусочек кода или подскажите направление в котором искать, чтобы скопировать только отформатированный текст (содержимое) в ячейке таблицы Word. Спасибо. Последний раз редактировалось OlegVE; 22.11.2010 в 20:43. |
23.11.2010, 07:19 | #2 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Может что-то типа того
Код:
|
23.11.2010, 13:04 | #3 | |
Форумчанин
Регистрация: 27.09.2010
Сообщений: 376
|
Цитата:
Я также пробовал варианты: 1) MSWord.Selection.MoveLeft(1, 1); и 2) MSWord.Selection.MoveLeft(1, 2); но и в том и другом и в третьем случае "выскакивает" ошибка "Метод или свойство недоступны, поскольку выделенный текст отсутствует" В принципе из-за этого у меня и возникла сложность, я не в состоянии выделить и получить только содержимое ячейки (конечно же в RTF формате) без сетки таблицы (рамки вокруг ячейки). Ещё раз спасибо за отклик. P.S. Нашел вариант, который выделяет только форматированный текст (только столбец 1, строка 1): MSWord.Selection.SelectCell; (MSWord это - MSWord := CreateOleObject('Word.Application') ; ) теперь ищу (и прошу помощи) как перемещать по ячейкам Selection после того как выбрали таблицу для обработки (Table := MSWord.ActiveDocument.Tables.Item(i TableChosen); )... P.P.S. Microsoft сам не знает как работать с ячейками таблицы (см. http://msdn.microsoft.com/en-us/libr...datafromatable ) и предлагает преобразовать таблицу в текст с разделителями Tab и т.д..., а если ячейки объединены... преобразовать в HTML (это так, к слову, у меня простая таблица)... Может кто-то подскажет более изящное решение. Спасибо. Последний раз редактировалось OlegVE; 23.11.2010 в 19:47. Причина: Добавление |
|
24.11.2010, 13:54 | #4 |
Форумчанин
Регистрация: 27.09.2010
Сообщений: 376
|
Спасибо тем, кто прочитал.
Тему можно закрыть, хотя нужного ответа не получил (см. ниже). Задам вопрос в другом месте. Спасибо. P.P.P.S. ПРОШУ ПРОЩЕНИЯ !!! ЗАДАЧА РЕШЕНА !!! Ответ получил. Ещё раз спасибо Sibedir. Использовал Table.Cell(jGridCols, iGridRows).Select; MSWord.Selection.SelectCell; MSWord.Selection.MoveEnd(1,-1); // Вариант Sibedir тоже работает MSWord.Selection.Copy; (MSWord это - MSWord := CreateOleObject('Word.Application') ; ) (Table это - Table := MSWord.ActiveDocument.Tables.Item(i TableChosen); ) ПРОБЛЕМА: Наличие пустой ячейки в таблице, на ней всё и спотыкалось и выскакивала выше упомянутая ошибка ("Метод или свойство недоступны, поскольку выделенный текст отсутствует"). Минут 15 нажимал F7 пока не добрался до этой ячейки. Надо просто проверить, например так: if not VarIsEmpty(Table.Cell(jGridCols, iGridRows).Range.FormattedText) then begin ... прежде чем копировать Selection. Последний раз редактировалось OlegVE; 25.11.2010 в 12:59. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проблемы с Microsoft Word. | baryshnya | Microsoft Office Word | 4 | 30.08.2010 10:47 |
TMemoryStream vs Microsoft Word | 095 | Общие вопросы Delphi | 0 | 26.04.2010 11:07 |
Таблицы и RichEdit | Olaf | Общие вопросы C/C++ | 1 | 09.04.2010 12:17 |
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD | prikolist | Microsoft Office Word | 6 | 21.11.2008 13:17 |