Программа, написанная на Delphi, получает доступ к документу Word и работает с таблицами — определяет объединение по горизонтали и вертикали, основываясь на ширине ячеек. Но в некоторых таблицах встречаются ячейки с шириной 9999999

, хотя ячейки расположенные ниже имеют нормальную ширину. Никакое изменение формата, пересохранение не помогает

. Даже после сохранения в html этот глюк остается, хотя в тегах все у ячеек одинаково, и ширина в том числе.
Может это Word так хитро проставляет какое-то свойство ячейки?
Любая мысль приветствуется.
Заранее спасибо.
Здравствуйте, mechanik, Вы писали:
M>Программа, написанная на Delphi, получает доступ к документу Word и работает с таблицами — определяет объединение по горизонтали и вертикали, основываясь на ширине ячеек. Но в некоторых таблицах встречаются ячейки с шириной 9999999
, хотя ячейки расположенные ниже имеют нормальную ширину. Никакое изменение формата, пересохранение не помогает
. Даже после сохранения в html этот глюк остается, хотя в тегах все у ячеек одинаково, и ширина в том числе.
M>Может это Word так хитро проставляет какое-то свойство ячейки?
M>Любая мысль приветствуется.
M>Заранее спасибо.
на самом деле Word так проставляет значение неопределённости. Это касается не только ширины ячейки.
Вот только как при этом понять, какая ширина у ячейки должна быть...
Здравствуйте, Bob Kotl, Вы писали:
BK>на самом деле Word так проставляет значение неопределённости. Это касается не только ширины ячейки.
BK>Вот только как при этом понять, какая ширина у ячейки должна быть...
Вот в чем вся сложность и заключается. Интересно, а когда Word сохраняет в html документы, он то ширину проставляет без неопределнностей, значит она где-то еще хранится. И это где-то недоступно через COM.
Я вот думал можно придумать алгоритм такой хитрый, который бы анализировал другие ячеки и оценивал какая может быть ширина, пока не встретил таблицу с 4 подряд идущими ячейками с неопределенной шириной — там уже никакой алгоритм не спасет.
Разобрался! Если обращать ся к ширине ячейки так Table.Item(i).Cell(j,k).Width, то возможна ошибка с шириной, а если так Table.Item(i).Cell(j,k).Range.Cells.Width, то все работает как положено по уставу
Ура!