Table.Load

From SunFlurry wiki
Revision as of 19:09, 20 November 2021 by Admin (talk | contribs) (1 revision imported)
Jump to: navigation, search
  Load (Загрузка таблицы)
Объект:Электронная таблица
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число, неверный файл
Визуальность:Нет

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

Синтаксис

Table.Load(<Наименование файла (STRING)>,<Формат (INT,STRING)>,<Индекс или наименование листа (INT,STRING)>):<Наименование загруженного листа (STRING)>

Аргументы

  • <Наименование файла (STRING)> - Аргумент задает наименование файла с путем и расширением. Путь может быть как серверным и так и локальным (Имена файлов). Если второй аргумент отсутствует, формат файла будет определен из расширения файла загрузки.
  • <Формат (INT,STRING)> - (необязательный аргумент) Аргумент задает формат загружаемого файла в строковом или числовом виде. Если аргумент опущен, разгрузка будет происходить в формате соответствующем расширению файла. Доступны следующие значения:
    • 0 или SFT -- файл во внутреннем формате системы (sft)
    • 1 или XLS -- файл в формате Excel (xls). Особенности импорта из формата xls:
      • Система распознает разные форматы Excel (от biff2 до biff8). Импорт файлов, созданных в старых версиях Excel разрешен.
      • Внедренный текст и картинки не будут импортированы для файлов с версией формата старше biff7 (т.е. только для Excel 95 и младше).
      • Внедренные OLE-объекты, Word Art, диаграммы, чертежи и прочее не будут импортированы.
      • При импорте чисел и дат с нестандартными форматами представления, результат может выглядеть несколько иначе, чем, если бы файл был открыт в Excel.
    • 2 или XLSX -- файл в формате Excel (xlsx). Особенности импорта из формата xlsx:
      • Не будут импортированы внедренные картинки не поддерживаемых форматов (на данный момент не поддерживаются: wmf, emf, tiff, eps).
      • Поддерживается корректный импорт внедренного текста, картинок и OLE-объектов, однако, OLE-объекты, внедренные в виде значка, будут импортированы как OLE-объекты стандартного внедрения (режим значков пока не поддерживается).
      • Внедренные объекты Word Art, диаграммы, чертежи и прочее не будут импортированы.
      • При импорте чисел и дат с нестандартными форматами представления, результат может выглядеть несколько иначе, чем, если бы файл был открыт в Excel.
      • Цвета ячеек, шрифта и границ областей таблиц, загруженных из внешних источников, не будут корректно импортированы. Также поддерживаются не все эффекты цветов (альфа, гамма и пр.) при импорте, что может исказить цвета некоторых файлов.
  • <Индекс или наименование листа (INT,STRING)> - (необязательный аргумент) Для форматов, хранящих более одного листа в файле (xls, xlsx), аргумент позволяет указать наименование загружаемого листа (если аргумент представляет строку) или индекс загружаемого листа (если аргумент представляет число, первый лист имеет индекс 1). Если аргумент опущен, будет загружен активный лист, либо первый лист, если активный лист недоступен. Если указанный по имени или индексу лист не найден, функция вызовет исключение.

Возвращаемое значение

Для форматов, хранящих более одного листа в файле (xls, xlsx), функция возвращает наименование загруженного листа, для остальных форматов (sft), будет возвращено пустое значение.

Примеры

Таб:=Table.Create();
Try
  Таб.Load(Файл,"XLS");
Except
  Message(PopError(),"!");
  Message("Ошибка при открытии файла "+Файл+"! Обратитесь к администратору!","!");
  Exit 0;
EndTry;  
  
If (Trim(Таб.Area(14,1,14,1).Text)<>"")or(Trim(Таб.Area(27,1,27,1).Text)<>"") Then
  Message("Файл "+Файл+" имеет неверный формат! Вы пытаетесь загрузить не тот файл!","!");
  Exit 0;  
EndIf;