Создание электронной таблицы Excel из базы данных Oracle - PullRequest
4 голосов
/ 16 мая 2011

У меня есть таблица в базе данных Oracle. Мне нужно создать сложную структуру электронных таблиц из таблицы Oracle. Я ищу лучший подход для достижения этой цели. Могу ли я использовать SSIS или использовать некоторые утилиты Oracle для создания электронной таблицы.

Любая помощь будет чрезвычайно признательна.

Заранее спасибо.

С уважением Dibs

Ответы [ 5 ]

7 голосов
/ 16 мая 2011

Полагаю, проблема в том, насколько сложна ваша "сложная структура"?

В средах программирования, таких как Oracle SQL Developer или Quest TOAD, есть мастера для экспорта таблицы данных в файлы CSV.

Если вы хотите объединить данные из нескольких таблиц, вы можете использовать представление или даже написать оператор SQL

select e.ename||','||d.dname
from   emp e
       join dept d on ( e.deptno = d.deptno )
/

(помните, что столбцы часто могут содержать данные, содержащие запятые, поэтому вы можете использоватьболее необычный символ - или набор символов - в качестве разделителя.)

Еще один быстрый способ сделать что-либо - использовать функцию отчетов SQL * Plus HTML.Многие инструменты для работы с электронными таблицами могут импортировать хорошо структурированные HTML и XML без рывков. Узнайте больше.

Если вы хотите сгладить иерархическую структуру или что-то еще более запутанное, вам, вероятно, придется перейти на PL / SQL.Ручной подход будет использовать вариант приведенного выше выражения, приспособленный для использования UTL_FILE:

declare
    csv_fh  utl_file.filetype;
begin
    csv_fh := utl_file.fopen('C:\temp', 'data_export.csv', 'W');
    for r in   (  select e.ename, d.dname
                  from   emp e
                  join dept d on ( e.deptno = d.deptno )
                ) loop
        utl_file.put_line(csv_fh, r.ename||'|'||r.dname;
    end loop;
    utl_file.fclose(csv_fh);
end;

Если вы хотите экспортировать данные специально в Excel (то есть файл .XLS), тогда вам нужно выйти за рамкиВстроенные Oracle.Обычным решением для экспорта напрямую из PL / SQL в Excel является оболочка OWA_SYLK Тома Кайта для API-интерфейса SYLK. Узнайте больше.

Работает с отдельными листами.Если вы хотите экспортировать в несколько листов, есть несколько альтернативных решений.

Санджив Сапре имеет свой пакет get_xl_xml.Как следует из названия, для преобразования используется XML. Узнайте больше .

Джейсон Беннетт написал объект PL / SQL, который генерирует документ Excel XML. Узнайте больше .

3 голосов
/ 13 декабря 2011

Вы можете использовать пакет ORA_EXCEL для создания документов Excel со сложной структурой.ORA_EXCEL имеет базовые, но мощные компоненты, которые вы можете использовать для создания сложных файлов Excel.

Проверьте список функций по адресу: http://www.oraexcel.com/documentation

0 голосов
/ 04 августа 2017

установить размер строки 4000 страниц 0 colsep ',' установить заголовок из тримпула при обрезке на

spool c: /file.xls

select * from tableName;

spooloff;

это сгенерирует ваш файл file.xls на диске c.Вы можете указать любой адрес и, если вы хотите, чтобы заголовок столбца, затем удалить предложение «заголовок» и установить для размера страницы какое-либо числовое значение.

0 голосов
/ 16 мая 2011

Существует «отключенная» версия описаний отчетов SSRS, называемая .RDLC (клиент языка определения отчетов).Это подмножество RDL, которое является частью SSRS.Существуют элементы управления для просмотра отчетов, в которые встроены экспортеры для форматов Excel и PDF.Элемент управления просмотра доступен как для оконных форм, так и для веб-форм.Источником данных для этих отчетов являются общие наборы данных или объекты данных, независимые от источников данных (SQL, Oracle, ... дымовые сигналы ..)

http://www.highoncoding.com/Articles/339_Creating_Charts_Using_Aspnet_ReportViewer_Control.aspx

http://msdn.microsoft.com/en-us/library/ms251771%28VS.80%29.aspx

0 голосов
/ 16 мая 2011

Первое, что я бы попробовал, это просто сброс значений, которые я хотел в CSV.Excel должен быть в состоянии импортировать это очень хорошо, и часто проще манипулировать формулами Excel и т. Д., Чем пытаться автоматизировать это.Если вы используете Oracle SQLDeveloper, есть возможность экспортировать результаты в CSV.Если вы используете SQL * Plus, то вы можете использовать set colsep ,, чтобы Oracle использовал запятые для разделения столбцов.Возможно, вы захотите сделать еще несколько настроек форматирования, если вы используете SQL * Plus.

...