Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > «Распотрошить» таблицу Word


Автор: Багира - с работы 9.11.2005, 10:31
Привет всем!

Расскажу кратко ситуацию, может быть, дельфисты подскажут умные мысли на этот счет?

1. На одном заводе группа людей создает таблицы в Word для своих нужд. Сначала просто заголовок, число строк нефиксированное. Затем «шапка» - заголовки столбцов уже в таблице. И потом – числа в несколько столбцов. Количество строк может быть разное, количество столбцов фиксированное. Таблицы занимают по несколько страниц в Word.
2. Заставить людей набирать цифры в чем-либо другом невозможно – они делают так, как удобно им. А я должна лишь приспособиться к ситуации и принимать ее как есть.
3. Есть возможность мне забирать эти файлы и увозить к себе. Данные эти (некоторые столбцы) нужны мне для последующей обработки.

4. Файлов этих и, соответственно, чисел, очень-очень много. Файлов с таблицами создают примерно по 10 в день, а у меня возможность забирать – раз в один-два месяца. Набирать вручную – это очень гигантский труд.

ЗАДАЧА: нет ли какой-нибудь возможности считывать данные из готовых файлов с таблицами, игнорируя сетку таблицы, по возможности, в Delphi не выше 5-ой версии (у меня только такая есть). Либо какими-либо другими стандартными средствами? Выделить их из сетки, но сохранить как-то возможность мне отличать столюцы друг от друга, чтобы брать только нужные.

Пожалуйста, подскажите что-нибудь.

Заранее благодарна.


Автор: Satana 9.11.2005, 10:53
Ну это можно в дельфях делать, но есть большой вопрос а что за операции с данными производятся? не проще ли копировать таблицу в Excel и там считать сумму или что либо еще?

Автор: Albinos_x 9.11.2005, 12:35
Присоединиться к таблице в ворде:
Код
...
var 
    Tbl: Table;
...
...
tbl:=WordApplication1.ActiveDocument.Tables.Item(1);
...

количество строк в таблице:
Код
...
rowCount:=tbl.Rows.Count;
...

rowcount типа Integer

Считать из ячейки:
Код
...
S:=Tbl.Cell(1, 1).Range.Text;
...


S:String или Widestring

Как работать с сервером ворд можно найти в

http://forum.vingrad.ru/index.php?showforum=89

и здесь

http://www.zoforum.zeroes-and-ones.com.ru/index.php?showtopic=174

Автор: bagira 9.11.2005, 19:34
Цитата(Satana @ 9.11.2005, 10:53)
Ну это можно в дельфях делать, но есть большой вопрос а что за операции с данными производятся? не проще ли копировать таблицу в Excel и там считать сумму или что либо еще?


Satana
Спасибо за ответ!
Мне понадобится потом помещать считанные числа в готовую базу данных, вернее добавлять некоторые поля в эту базу (по признакам). Не знаю, можно ли это делать из Excel?


Albinos_x
Попробую воспользоваться твоей подсказкой. Я и не думала, что такое в принципе возможно.
Спасибо огромное!

smile

Автор: Albinos_x 9.11.2005, 19:58
Цитата(bagira @ 9.11.2005, 19:34)
Не знаю, можно ли это делать из Excel?

можно так же, как и с ворда
Цитата(bagira @ 9.11.2005, 19:34)
Спасибо огромное!

smile

Автор: Albinos_x 10.11.2005, 11:28
вот примерчик накидал:
http://www.albinos.nightmail.ru/test.zip

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)