Буферизация данных на разных листах в Excel - PullRequest
1 голос
/ 13 июня 2011

Может кто-нибудь помочь мне спулинга данных на разные листы для разных запросов в Excel от Oracle.

Query1 -> Sheet1
Query2 -> Sheet2
Query3 -> Sheet3

Спасибо

Ответы [ 3 ]

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

Я разработал ORA_EXCEL www.oraexcel.com , пакет Oracle PL / SQL, который может создавать документы Excel с листами.

Код, который будет создавать документ Excel с данными на основе вашеговопрос:

BEGIN  
   ORA_EXCEL.new_document; 

   -- Sheet 1
   ORA_EXCEL.add_sheet('Sheet1');
   ORA_EXCEL.add_row;
   ORA_EXCEL.set_cell_value('A', 'Id');
   ORA_EXCEL.set_cell_value('B', 'First name');
   ORA_EXCEL.set_cell_value('C', 'Last name');      
   FOR rec IN(SELECT * FROM table1) LOOP
       ORA_EXCEL.add_row;
       ORA_EXCEL.set_cell_value('A', red.id);
       ORA_EXCEL.set_cell_value('B', red.first_name);
       ORA_EXCEL.set_cell_value('C', red.last_name);
   END LOOP;

   --Sheet 2      
   ORA_EXCEL.add_sheet('Sheet2');
   ORA_EXCEL.add_row;
   ORA_EXCEL.set_cell_value('A', 'Id');
   ORA_EXCEL.set_cell_value('B', 'First name');
   ORA_EXCEL.set_cell_value('C', 'Last name');      
   FOR rec IN(SELECT * FROM table2) LOOP
       ORA_EXCEL.add_row;
       ORA_EXCEL.set_cell_value('A', red.id);
       ORA_EXCEL.set_cell_value('B', red.first_name);
       ORA_EXCEL.set_cell_value('C', red.last_name);
   END LOOP;

   -- Sheet 3
   ORA_EXCEL.add_sheet('Sheet3');
   ORA_EXCEL.add_row;
   ORA_EXCEL.set_cell_value('A', 'Id');
   ORA_EXCEL.set_cell_value('B', 'First name');
   ORA_EXCEL.set_cell_value('C', 'Last name');      
   FOR rec IN(SELECT * FROM table3) LOOP
       ORA_EXCEL.add_row;
       ORA_EXCEL.set_cell_value('A', red.id);
       ORA_EXCEL.set_cell_value('B', red.first_name);
       ORA_EXCEL.set_cell_value('C', red.last_name);
   END LOOP;      

   -- EXPORT_DIR is Oracle directory
   ORA_EXCEL.save_to_file('EXPORT_DIR', 'example.xlsx');
END;
1 голос
/ 13 июня 2011

У парня по имени Джейсон Беннетт есть пакет с именем ExcelDocumentType .С этим ничего не поделаешь, кроме как скачать, но выглядит многообещающе.

0 голосов
/ 20 декабря 2011

Я обновил пакет, поэтому теперь вы можете экспортировать запрос в лист следующим образом:

BEGIN
    ORA_EXCEL.new_document;

    ORA_EXCEL.add_sheet('Employees');
    ORA_EXCEL.query_to_sheet('select * from employees');

    ORA_EXCEL.add_sheet('Departments');
    ORA_EXCEL.query_to_sheet('select * from departments');

    ORA_EXCEL.add_sheet('Locations');
    ORA_EXCEL.query_to_sheet('select * from locations');

    ORA_EXCEL.save_to_file('EXPORT_DIR', 'example.xlsx');
END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...