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


Автор: Лёха 7.7.2005, 13:22
Помогите кто чем может.
У меня есть база данных, которая лежит в файле *.dat.
Я сделал кнопку и хочу, чтобы при нажатии на нее файл с базой данных открывался в отдельном окне как Excel-приложение. smile
Пробовал делать ссылку на файл, но Internet Explorer сам открывает его как блокнот и в нем ничего исправить я не могу.
Напишите как можно решить эту проблему.

Автор: Secandr 7.7.2005, 13:44
надо писать парсер файла и выдавать его в виде таблички.

Автор: Лёха 7.7.2005, 13:56
for Secandr
При просмотре страницы база данных подгружается в HTML-табличку (я не могу ее редактировать при просмотре - так и должно быть), но мне надо чтобы саму базу данных была возможность редактировать у обычного пользователя (по-моему Excel довольно удобен для этого и его знают многие)

Автор: korob2001 7.7.2005, 14:07
Генерируй HTML страницу с таблицей и текстовыми полями, поля заполняй информацией из файла. Если файл большой, делай разбивку по страницам. А вообще, если тебе нужена такая база в формате .xls, то почему бы не хранить её в этом же формате? Можно также хранить в Access.

Автор: Лёха 7.7.2005, 14:28
for korob2001
У меня есть HTML-страница с табличкой и все туда прекасно загружается из файла *.dat.
И мне не нужна таблица в формате *.xls.
И не хочу хранить базу в Access.
Я просту хочу, чтоб как в винде открыть файл *.dat с помощью Microsoft Excel (в отдельном окне).
Неужели в Perl это нельзя сделать?

Автор: Secandr 7.7.2005, 16:11
Перл тут не причём. Перл манипулирует с информацией на сервере. А клиентская машина ведёт себя независимо от перла.

Хочешь открывать экселем отдавай xls файл с соответствующим содержимым

Автор: sharq 7.7.2005, 18:30
Лёха может сделать так:
1. пользователь получает ссылку на файл, скачивает его, редактирует в Exel'е и с помощью формы закачивает на сервер.

2. создаешь имитацию Exel'я - на html-странице выводишь форму для редактирования информации, похожую на Exel.

Первый способ - не очень... второй как раз то, что нужно!

Если ты делаешь CGI-приложение, то у тебя не получится через него открывать файлы во внутреннем приложении (например, в Exel'е), изменять их и сохранять на сервере.

Иначе - если, ты делаешь скрипт, кот. вызывается через командную строку, то ты можешь открывать Exel, используя технологию OLE, изменять данные в нем и сохранять на диск.

smile

Автор: korob2001 7.7.2005, 19:05
Цитата

И мне не нужна таблица в формате *.xls.

Я что-то не пойму, сначала ты говоришь, что она тебе нужна. Теперь ты говоришь, что она тебе не нужна. smile

Автор: Лёха 7.7.2005, 20:31
for sharq
Не мог бы ты подробнее написать текст, в котором используется OLE технология для открытия файла. Может ты знаешь какие-нибудь функции, делающие примерно то же самое.


for korob2001
Если открывать файл *.dat вне интернет-странички Windows откроет окно "Открыть с помощью", в нем можно выбрать "MicrosoftExcel" и при соответсвующем формате файла *.dat он откроется в виде Excel-таблицы, теперь содержимое файла можно редактировать и визуально оно будет очень даже ничего, а при сохранении изменений они будут записаны обратно в файл *.dat.
Что-то вроде этого я и хочу сделать и *.xls файл мне совершенно не нужен.

Автор: sharq 7.7.2005, 23:28
Лёха perldoc Win32::OLE!

Вот пример - открывает Exel-приложение, записывает туда, что нужно и куда нужно,
этот файл можно редактировать в ручную и сохранять туда, куда нужно. smile
Код
use Win32::OLE;

my $ex = Win32::OLE->new('Excel.Application') or die "oops\n";

$ex->{Visible} = 1;

# get a new workbook
my $book = $ex->Workbooks->Add;

# write to a particular cell
my $sheet = $book->Worksheets(1);

$sheet->Cells(7,13)->{Value} = "sharq wrote this";



Читай доку, юзай методы и будет тебе счастье. smile

ЗЫ если это то, что тебе нужно, то формулируй свои вопросы точнее.

Автор: Guest 8.7.2005, 08:08
for sharq
Спасибо. Попробую.
Но я бы хотел не создавать новый докумет в экселе, а подгрузить уже созданный файл (*.dat).
smile

Автор: Secandr 8.7.2005, 08:19
Лёха, ты не можешь заставить клиентскую машину прочитать файл dat в экселе при помощи перла.

При помощи перла ты можешь конвертировать файл в экселевский и отдать клиенту.

Автор: Guest 8.7.2005, 08:38
for Secandr.
Напиши, пожалуйста, подробнее как это реализовать

Автор: korob2001 8.7.2005, 08:49
Цитата
Если открывать файл *.dat вне интернет-странички Windows откроет окно "Открыть с помощью", в нем можно выбрать "MicrosoftExcel" и при соответсвующем формате файла *.dat он откроется в виде Excel-таблицы, теперь содержимое файла можно редактировать и визуально оно будет очень даже ничего, а при сохранении изменений они будут записаны обратно в файл *.dat.
Что-то вроде этого я и хочу сделать и *.xls файл мне совершенно не нужен.

1.) .xls это как раз и есть формат Excel'я. Что касается .dat, то его нужно сначало открыть, затем читать, конвертировать в формат .xls ( Excel ) и выдавать пользователю, не проще ли хранить всё изначально в .xls фомате?
2.) После того как данные изменены - нужно ковертировать из формата .xls всю таблицу и записывать её в файл .dat. Опять же, зачем всё это делать, если можно просто сохранить всё в тот же .xls, т.е. Excel фомат.
3.) Если ты хочешь таким образом в сети сохранять всё изменения, а не локально, то сразу тебе говорю ничего без ActiveX и OLE у тебя не выйдет и работать будет только под виндой.

Автор: sharq 8.7.2005, 09:52
Цитата(Guest @ 8.7.2005, 08:08)
Но я бы хотел не создавать новый докумет в экселе, а подгрузить уже созданный файл (*.dat).

Ты запускал пример??? Он, как раз создает новый файл, инициализирует его какими-то значениями и открывает в Exel. Инициализировать ты можешь как хочешь, что и чем хочешь, хоть логами севрера smile .

Ты геммор себе придумал, зачем тебе так мучатся:

Цитата(korob2001 @ 8.7.2005, 08:49)
1.) .xls это как раз и есть формат Excel'я. Что касается .dat, то его нужно сначало открыть, затем читать, конвертировать в формат .xls ( Excel ) и выдавать пользователю, не проще ли хранить всё изначально в .xls фомате?
2.) После того как данные изменены - нужно ковертировать из формата .xls всю таблицу и записывать её в файл .dat. Опять же, зачем всё это делать, если можно просто сохранить всё в тот же .xls, т.е. Excel фомат.


Лучше напиши подробнее что тебе необходимо сделать, мы тебе поможем... наверно. smile

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