IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Oracle + Excel (https://www.imho.ws/showthread.php?t=80857)

SwiMMeR 02.03.2005 08:18

Oracle + Excel
 
Постановка задачи:

Необходимо, чтобы любой пользователь корпоративной сети или подсети мог получить с Оракла заранее определенный по формату, но не определенный по содержанию, набор данных, сохраненный в файл Microsoft Excel на клиентском месте без использования клиентских приложений, процедур и т.д.

По сути отделу Н. необходимо получать набор ошибочных данных с дальнейшей обработкой в Microsoft Excel. Т.е. SQL-запрос известен заранее. В него подставляется несколько параметров и он отправляется на выполнение. Не могу придумать, как это сохранить в Excel. :(

В качестве промежуточного звена между клиентом и сервером Оракл рассматриваю вариант использования сервера Apache.

RaZEr 02.03.2005 08:18

Сохрани в csv

SwiMMeR 02.03.2005 10:32

RaZEr
не понял ... как сохранить? чем?

Ghost 02.03.2005 10:40

SwiMMeR
Выборку из таблицы Oracle в файл с разделителями, который потом можно просто открыть в Excel. Чем: PHP- или Perl-скриптом, который запрашивает параметры SQL-запроса и возвращает этот самый файлик.

/7y3uK 02.03.2005 16:36

проехали - попутал

RaZEr 02.03.2005 18:12

Не путай CVS и CSV

ЕЖ 02.03.2005 18:21

/7y3uK
CSV - Comma Separated Value :ржать:

/7y3uK 03.03.2005 12:38

Хех... не флуд!

буду внимательнее читать...
попутал :) Баальшой пардон :) :ржать:

lazyman 03.03.2005 18:11

Самое простое - через MS Query запрашивать прямо в Excel. Excel menu: Data|Import External Data|New database query... Там и параметры можно подставить, и summary при необходимости сделать. Для этого на машине нужен оракловский клиент, ODBC драйвер для оракла и MS Query из офиса.

Если условия неприемлемы, можно действительно генерировать CSV или html, последнее несколько сложнее, но позволяет получить готовый красивый отчет.

SwiMMeR 04.03.2005 04:05

lazyman
Цитата:

или html, последнее несколько сложнее, но позволяет получить готовый красивый отчет.
Этот вариант не подходит, поскольку потом на этот файл будут ссылаться другие документы Excel.

Ghost 04.03.2005 07:38

Вложений: 2
SwiMMeR
А кстати, lazyman дело предложил. Установи ODBC-коннектор к Oracle, а потом в Excel очень просто получить данные: Данные -> Импорт внешних данных ->
Попробуй так. :)

З.Ы. Одного ODBC-драйвера недостаточно, нужно еще обязательно поставить oracle-клиента, хотя бы в минимальной конфигурации. Если не ошибаюсь, в Oracle8i для этого потребуется 50 метров на диске и 15 минут свободного времени ;)

З.З.Ы. Кстати, в том же меню есть пункт "Создание веб-запроса". В аттаче пример (я там обращаюсь к скрипту на своем http-сервере (виден только в локалке), который позволяет ввести запрос к Oracle, выполнить его и отобразить результаты). В другом аттаче - тот самый скрипт, правда на перле, но переделать в пхп не сложно ;)

SwiMMeR 04.03.2005 10:28

Ghost
Это задача должна быть - "сделал и забыл". Это не разовая, а постоянная задача.

Поэтому пытаемся реализовать систему получения информации web-страницей с последующим подключением Excel из этой же страницы и заполнения окна Excel.

на Оракл - очень просто писать процедурки, которые возвращают Html-поток. Теперь нужно чтобы клиентский броузер правильно обработал этот поток сформировав не html-страницу, а Excel-страницу.

Ghost 04.03.2005 10:43

SwiMMeR
Так в чем проблема? Я сейчас сделал такую штуку:
1. В Excel вставил результат выполнения запроса из предыдущего поста.
2. Удалил пару строк из таблицы, сохранил книгу и закрыл программу.
3. Открыл заново Excel, вызвал панель "Внешние данные", нажал на ней кнопку "Обновить все" и оп-паньки - все строки на месте.
Все просто ;)
А если нужно изменить запрос, то нажимаем кнопку "Свойства диапазона данных" в той же панели и правим первое поле (в моем случае содержит "?query=select+table_name+from+user_tables") или нажимаем конопку "Изменить запрос" и меняем его в форме страницы.
Чем тебя такой вариант не устраивает?

SwiMMeR 04.03.2005 13:28

Ghost
ругается на
"use DBI;" - error 500

я в перле не силен ... чего он хочет?

Ghost 04.03.2005 13:40

Ему нужны библиотека DBI (DataBase Interface) и к ней DBD::Oracle (DataBase Driver Oracle). Они не устанавливаются вместе с перлом. Нужно ставить отдельно. Сейчас пороюсь у себя в компактах - где-то лежит. Найду - выложу и стукну в ПМ.

З.Ы. Нашел. Выложил. Стукнул. :)


Часовой пояс GMT +4, время: 05:16.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.