Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Чтение файлов MS Word


Автор: freezzz 30.7.2003, 13:40
Есть ли такой модуль, который позволит открыть и вывести содержимое документов Word?

Автор: HalkaR 30.7.2003, 17:48
На CPAN ничего не нашел. Excel есть, а Wordа нет. Странно.

Автор: korob2001 6.8.2003, 08:30
Цитата
Есть ли такой модуль, который позволит открыть и вывести содержимое документов Word?


Win32::OLE

Подробно читаем здесь: http://perl.ru/go.cgi?action=forum&board=advanced&op=display&num=2992

Автор: -Гость_Alex- 27.6.2005, 07:57
smile
Не подскажете, где еще можно посмотреть?
Может на вскидку вспомните?
http://perl.ru/ - молчит...
По поисковикам прошелся, пока нашел только один пример да и то только под Win32
А мне нужно под Unix

Заранее благодарен
Usya (-Гость_Alex-)

Автор: sharq 27.6.2005, 10:01
На сколько я знаю, doc - закрытый формат и с ним ничего сделать нельзя, только перевести в rtf или xml или html. И полученный документ парсить, благо для этих форматов соответствующие модули есть.

Автор: Ivan Kolesnikov 27.6.2005, 11:39
sharq, а для чего тогда Microsoft COM придумал?
Вот небольшой пример работы с COM объектом:
Код

use Win32::OLE;
use strict;

my $wrd = Win32::OLE->new("Word.Application") or die 'error';
$wrd->{Visible} = 1;
$wrd->{Documents}->Open("c:\\123.doc");


Написал я его пользуясь исключительно справкой по Visual Basic, та что в Word входит. Нужно только перевести примеры на Perl и все. Так же очень удобным средством для изучения являются макросы: записываешь макрос, а потом смотришь что он там (Word) натворил.

Автор: sharq 27.6.2005, 13:31
Ivan Kolesnikov ты запускал приведенный скрипт? Наверно - нет. smile
Ты открываешь документ в программе Microsoft Word, используя технологию OLE, средствами perl.
Задача не много не в этом состоит smile
Необходимо открыть доковский файл на чтение и вывести его содержимое.

Автор: Гость_Alex 27.6.2005, 18:36
Цитата

... только перевести в rtf или xml или html. И полученный документ парсить...


Все было бы хорошо, если б я закачивал файлы к себе на комп и далее их обрабатывал...
Мне нужно автоматизировать этот процесс под Unix-ом, причем нет возможности предварительно конвертировать doc-овские файлы в файлы другого формата

Usya (-Гость_Alex-)

Автор: sharq 27.6.2005, 19:38
Цитата
Мне нужно автоматизировать этот процесс под Unix-ом, причем нет возможности предварительно конвертировать doc-овские файлы в файлы другого формата
если ты делаешь формы для пользователей, то пусть предварительно сами конвентируют, используя Сохранить как в Word'e. Если же это системная задача, то проблема... и все же пусть те, кто создают doc-файлы сохраняют в удобном для тебя формате. smile

ЗЫ я слышал, что Microsoft Word собирается перейди на общедоступный формат (типа xml), т.е. вордовские документы можно будет парсить прораммными средствами, только выход нового Word'а ожидается в 2006, можешь подождать! smile

Автор: Ivan Kolesnikov 28.6.2005, 03:02
Цитата

Ivan Kolesnikov ты запускал приведенный скрипт? Наверно - нет.

Да запускал, он открыл Word с файлом. Я и не собирался писать скрипт, который выводит содержимое Word файла, я просто хотел показать как вообще в Word работать исполользуя Perl.
А вот про то что человеку нужно из под Unix, а там нет COM, не прочитал, извиняюсь. smile

Автор: korob2001 28.6.2005, 05:11
Цитата

http://perl.ru/ - молчит...

УГУ, он уже давно умер. После чего я оказался здесь. smile

PS: думаю гораздо проще запретить грузить вордовские файлы, чем пытаться парсить их под nix'ами. smile Office создал Microsoft и уж никак не для nix'ов.

Автор: Гость_Alex 28.6.2005, 16:40
Цитата
Office создал Microsoft и уж никак не для nix'ов

Excel тоже создал Microsoft, но есть и Spreadsheet::ParseExcel...

Цитата
думаю гораздо проще запретить грузить вордовские файлы

Часть файлов, которую мне нужно обработать, идет в word-овском формате. Единственное, что радует, - процент таких файлов не очень высок, поэтому до них пока не брался. Хотя, что-то мне кажется, что так и не удастся их обработать...

Отрицательный результат - тоже результат, хотя и не очень радует smile
Спасибо всем за ответы smile
Usya (-Гость_Alex-)

Автор: korob2001 28.6.2005, 18:17
Цитата

Excel тоже создал Microsoft, но есть и Spreadsheet::ParseExcel...

А он работает по nix'ами???

Автор: sharq 28.6.2005, 20:20
Единственное, что есть - это модуль Win32::Word::Writer, но он только позволяет открывать или создавать докфайлы для записи... но это тоже не поможет...

Автор: Гость_Alex 28.6.2005, 21:27
Цитата
А он работает по nix'ами???

Скопировал из README для Spreadsheet::ParseExcel: "The module will work on the majority of Windows, UNIX and Macintosh platforms."
Скопировал с одной из страниц хостинг-провайдера: "Наши серверы работают на Linux RedHat 7.3 и выше..."

Цитата
модуль Win32::Word::Writer, но он только позволяет открывать или создавать докфайлы для записи... но это тоже не поможет...

Плюс к тому же он, скорее всего, работает только под виндами (что следует из названия)...

Usya (-Гость_Alex-)

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