AnyLogic
Развернуть
Размер шрифта

Экспорт данных в книгу MS Excel

Чтобы экспортировать данные из таблицы БД AnyLogic в файл MS Excel

  1. В панели Проекты щелкните по элементу модели  База данных.
  2. В панели Свойства разверните секцию Экспорт.

  3. Настройте действие экспорта, если не сделали это раньше. Для этого щелкните по метке Настройки экспорта….
  4. Вы увидите диалоговое окно Настройки экспорта. Используя кнопку Выбрать…, укажите файл MS Excel, в который хотите записать информацию. Путь к файлу будет отображаться в поле Экспортировать в, которое расположено ниже в секции свойств Экспорт.
  5. Ниже, в списке Выберите таблицы для экспорта, отметьте флажками таблицы баз данных, которые вы хотите экспортировать в книгу MS Excel.
  6. Нажмите кнопку OK.

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

Если выбранный файл MS Excel открыт, вы увидите сообщение об ошибке. Закройте приложение MS Excel и повторите процесс экспорта.

После успешного экспорта, вы можете открыть файл MS Excel, и увидеть новые листы с записанными данными, которые создал AnyLogic, по одному листу для каждой экспортированной таблицы базы данных.

Экспорт таблицы из внутренней базы данных в файл Excel с помощью кода

AnyLogic позволяет экспортировать данные из внутренней базы данных во внешний файл Excel. Для этого можно воспользоваться любым из имеющихся кодовых полей: например, телом функции или действием агента.

Чтобы задать процедуру экспорта в коде

  1. Используйте конструктор класса Database, чтобы указать местоположение нужного файла Excel. Например:
    Database myFile = new Database(this, "A DB from Excel", "D:\Files\myDBFile.xls")
    Первый аргумент конструктора класса Database (this) указывает на владельца базы данных (агента или эксперимент). Второй аргумент ("A DB from Excel") — опциональное имя базы данных для вашего удобства. Третий — это имя файла.
    Вам нет необходимости каждый раз указывать абсолютный путь до файла — сработает и относительный. Кроме того, вы можете воспользоваться различными прикладными элементами интерфейса, чтобы люди, работающие с моделью, могли указывать разные файлы. Например, для этой цели подойдет элемент выбора файла.
  2. Получите доступ ко внутренней базе данных модели, создав экземпляр объекта ModelDatabase:
    ModelDatabase modelDB = getEngine().getModelDatabase();
  3. Наконец, вызовите функцию exportToExternalDB():
    modelDB.exportToExternalDB("Database table for exporting", myFile.getConnection(), "Sheet 1", false, false);
    • Первый аргумент ("Database table for exporting") указывает на таблицу внутренней базы данных модели, которую вы хотите экспортировать.
    • Второй аргумент указывает на объект Connection (соединение с базой данных), полученный в результате вызова функции getConnection().
    • Третий аргумент ("Sheet 1") указывает имя таблицы базы данных (файла Excel), в которую осуществляется экспорт. Обратите внимание, что таблица (лист) с указанным именем должна существовать внутри файла базы данных и обладать указанным именем. Кроме того, верхний ряд должен быть заголовочным (т.е. содержать названия колонок, соответствующие названиям колонок таблицы внутренней базы данных модели AnyLogic).
    • С помощью четвертого аргумента можно указать на необходимость очистки содержимого целевой таблицы перед вызовом функции. Сейчас, однако, данная функциональность не поддерживается при экспорте в файл Excel, поэтому в нашем случае следует указать значение false (т.е. новые значения будут пополнять таблицу, а не перезаписывать имеющиеся).
    • false в пятом аргументе указывает, что действие экспорта не будет обработано как полноценная транзакция с базой данных (что может приводить к проблемам с производительностью).
    Если вам необходимо экспортировать данные из нескольких таблиц, повторите вызов функции и укажите имя другого листа в том же файле или другой файл.
    Больше информации об этой функции и других функциях внутренней базы данных модели можно найти в соответствующем разделе.
  4. После выполнения описанного кода лист Excel заполнится значениями.
    Вы можете вызвать myFile.disconnect(), чтобы отключиться от базы данных и продолжить работу с моделью.
Как мы можем улучшить эту статью?