Создайте файл xls, используя PL/SQL, без использования xml

Моя система разработана в APEX/Oracle 11g, и я хочу создать файл xls напрямую, без необходимости создания файла xml. В настоящее время система создает файл XML, который затем может быть сохранен в формате xls, но очень привередливому пользователю не нравится предупреждение Windows 7 при попытке открыть файл XML (предупреждение Excel о том, что формат файла делает не соответствует его расширению). Есть ли способ использовать Oracle PL/SQL из APEX для достижения этой цели?

3 ответа

Мортен Братен создал великолепную страницу ресурсов PLSQL: http://code.google.com/p/plsql-utils/

В частности, Антон Схеффер поделился своим пакетом AS_XLSX, который бы соответствовал вашим потребностям APEX: http://technology.amis.nl/2011/02/19/create-an-excel-file-with-plsql/

Очень прост в использовании с хорошими примерами в заголовке пакета.

Вы можете использовать пакет OraExcel для генерации реальных файлов xlsx (в двоичном виде). С этим пакетом вы можете форматировать ячейки и применять стили, как в Excel.

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

Когда вы завершаете работу с файлом Excel, появляется возможность сгенерировать файл xlsx в переменную BLOB PL/SQL, которую можно вернуть в APEX и загрузить.

Там нет предупреждений, которые раздражают ваших клиентов.

Вы можете написать простую функцию, подобную приведенной ниже, для создания электронной таблицы Excel и возврата ее в APEX:

CREATE OR REPLACE FUNCTION get_excel RETURN BLOB IS
   my_blob BLOB;
BEGIN

  ora_excel.new_document;
  ora_excel.add_sheet('My sheet');

  ora_excel.query_to_sheet('SELECT field1, field2, field2 FROM my_table');

  ora_excel.save_to_blob(my_blob);

  RETURN my_blob;

END;

Есть больше примеров на: http://www.oraexcel.com/examples

ура

Вы можете использовать хранимую процедуру Java

http://docs.oracle.com/cd/B28359_01/java.111/b31225/chfive.htm

и Apache Poi

http://poi.apache.org/spreadsheet/index.html

создавать реальные таблицы и сохранять их в поле lob, а также возвращать пользователю

Другие вопросы по тегам