Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Сокровищница
  
 

Фильтр по датам

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  16:24[Войти] | [Зарегистрироваться]

Обсуждение материала
Работа с таблицами Word с объединенными ячейками
Полный текст материала


Другие публикации автора: Дамир

Цитата или краткий комментарий:

«... Однажды потребовалось перевести в базу данных нормативные данные, оформленные в редакторе Word в виде таблиц. И сразу же возникли проблемы с объединенными ячейками – как заполучить данные, находящиеся в объединенных ячейках. Но, оказывается, именно возникновение исключений при обращении к отсутствующим ячейкам и позволяет решить эту проблему. Логика простая: раз возникло исключение при обращении к какой-либо ячейке, значит с этой ячейкой не все гладко. Значит, надо этим воспользоваться. На этом принципе основана методика распознавания таблиц Word, представленная в данной статье. ...»


Важно:
  • Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
  • Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
  • При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
  • Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.



Добавить свое мнение.

Результаты голосования
Оценка содержания

  Содержит полезные и(или) интересные сведения
[1]5100%
 
  Ничего особенно нового и интересного
[2]00%
 
  Написано неверно (обязательно укажите почему)
[3]00%
 
Всего проголосовали: 5

Оценка стиля изложения

  Все понятно, материал читается легко
[1]5100%
 
  Есть неясности в изложении
[2]00%
 
  Непонятно написано, трудно читается
[3]00%
 
Всего проголосовали: 5




Смотрите также материалы по темам:
[Работа с MS Word]

Комментарии жителей
Отслеживать это обсуждение

Всего сообщений: 11

14-11-2018 06:31
Приношу извинения, но другие (вспомогательные) функции разместить здесь не могу.
Вроде, как превышение 5К. Хотя, по факту, текст в одном сообщении НЕ превышает 2К.


14-11-2018 06:12
Как-то тоже пришлось решать подобную задачу.
Пошел по пути:
  1. Формирование перечня существующих ячеек таблицы.  
  2. Обработка перечня существующих ячеек таблицы.                                                                

Ниже - соответствующая функция (и, далее, используемые, вспомогательные функции).



function Word_Table_Cells_Get(msWord:variant; vTabl:variant; ListCells:TStrings; Yes_SameAlgorithm:boolean=false):integer;
//Таблица. Получить список всех существующих ячеек (с учетом объединенных ячеек: столбцы и/или строки)
{
Формат возвращаемого значения (в списке ListCells):
НомерСтроки=ПереченьЯчеекВСтроке                                                                    
Пример:
1=[1][2][3][4]
2=[1][2][4]
}

Var
  RowsCount : integer;
  iRow:integer;
  Sx:string;
begin
  Result:=0;
  if Assigned(ListCells) then begin
     ListCells.Clear;
     if not VarIsEmpty(msWord) then begin
        if not VarIsEmpty(vTabl) then begin
           RowsCount:=vTabl.Rows.Count;
           if RowsCount>0 then begin
              iRow:=0;
              while iRow<RowsCount do
               begin
                iRow:=iRow+1;
                Sx:=trim(Word_Table_Row_Cells_Get(msWord, vTabl, iRow, Yes_SameAlgorithm));
                if length(Sx)>0 then begin
                   ListCells.Values[IntToStr(iRow)]:=Sx;
                end;
              end;
           end;
        end;
     end;
     Result:=ListCells.Count;
  end;
end;



24-07-2009 04:08
2 Putnik - нет :(


23-07-2009 08:44
2 MeSoft
На torry.net поиск дает единственный компонент с таким именем, это не он?


23-07-2009 00:27
жаль :(


22-07-2009 23:55
сообщение от автора материала
К сожалению, по независящим от меня обстоятельствам, я не могу передавать компонент.


22-07-2009 05:46
не можете кинуть исходник компонента на мыло или в обменник???
заранее благодарен


22-07-2009 04:44
сообщение от автора материала
давненько брал на сайте:
http://fg.fatal.ru/delphi/components/stringgrids.htm
Но теперь там что то другое под тем же названием.


22-07-2009 03:29
Не подскажите, где вы взяли TMStringGrid, нигде не могу найти этот компонент


20-07-2009 00:03
сообщение от автора материала
В 3-м листинге строка SetLength(FWordTableCell,0, 0);
не нужна. Не понимаю, откуда она взялась, наверно использовалась при отладке.


19-07-2009 12:57
Я бы добавил, что работать с объединенной ячейкой в принципе возможно, если обращаться к ней по индексу верхней левой ячейки в объединении. Другое дело, когда формат таблицы заранее неизвестен. Насколько я понял, статья как раз про этот случай.


Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Какой месяц идет после марта?
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.

Оценка содержания
 
Содержит полезные и(или) интересные сведения
 
Ничего особенно нового и интересного
 
Написано неверно (обязательно укажите почему)


Оценка стиля изложения
 
Все понятно, материал читается легко
 
Есть неясности в изложении
 
Непонятно написано, трудно читается

Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования