Difference between revisions of "Table.LoadFromBuffer"

From SunFlurry wiki
Jump to: navigation, search
m (1 revision imported)
1>Admin
Line 26: Line 26:
 
* <code>''<Формат (INT,STRING)>''</code> - {{Optional}} Аргумент задает формат загружаемого файла в строковом или числовом виде. Если аргумент опущен, разгрузка будет происходить в формате соответствующем содержимому буфера (формат будет определен автоматически). Доступны следующие значения:
 
* <code>''<Формат (INT,STRING)>''</code> - {{Optional}} Аргумент задает формат загружаемого файла в строковом или числовом виде. Если аргумент опущен, разгрузка будет происходить в формате соответствующем содержимому буфера (формат будет определен автоматически). Доступны следующие значения:
 
** '''0''' или '''SFT''' (по умолчанию) -- файл во внутреннем формате системы (sft)
 
** '''0''' или '''SFT''' (по умолчанию) -- файл во внутреннем формате системы (sft)
** '''1''' или '''XLS''' -- файл в формате Excel (xls)
+
** '''1''' или '''XLS''' -- файл в формате Excel (xls). Особенности импорта из формата ''xls'':
** '''2''' или '''XLSX''' -- {{Planned}} файл в формате Excel (xlsx)
+
*** Система распознает разные форматы 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.
 +
*** Цвета ячеек, шрифта и границ, выбранные из тем, не будут корректно импортированы. Некоторые цвета, имеющие настройки смещения яркости, градиенты и пр. могут отличаться от воспроизводимых на экране Excel.
 
* <code>''<Индекс или наименование листа (INT,STRING)>''</code> - {{Optional}} Для форматов, хранящих более одного листа в файле (xls, xlsx), аргумент позволяет указать наименование загружаемого листа (если аргумент представляет строку) или индекс загружаемого листа (если аргумент представляет число, первый лист имеет индекс ''1''). Если аргумент опущен, будет загружен активный лист, либо первый лист, если активный лист недоступен. Если указанный по имени или индексу лист не найден, функция вызовет исключение.
 
* <code>''<Индекс или наименование листа (INT,STRING)>''</code> - {{Optional}} Для форматов, хранящих более одного листа в файле (xls, xlsx), аргумент позволяет указать наименование загружаемого листа (если аргумент представляет строку) или индекс загружаемого листа (если аргумент представляет число, первый лист имеет индекс ''1''). Если аргумент опущен, будет загружен активный лист, либо первый лист, если активный лист недоступен. Если указанный по имени или индексу лист не найден, функция вызовет исключение.
  

Revision as of 19:30, 19 March 2021

  LoadFromBuffer (Загрузка таблицы)
Объект:Электронная таблица
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число, неверные аргументы, неверный формат
Визуальность:Нет

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

Синтаксис

Table.LoadFromBuffer(<Объект буфера (BUFFER)>,<Начальная позиция буфера (INT)>=0,<Размер таблицы в буфере (INT)>,<Формат (INT,STRING)>,<Индекс или наименование листа (INT,STRING)>):<Наименование загруженного листа (STRING)>

Аргументы

  • <Объект буфера (BUFFER)> - Аргумент задает объект буфера, откуда будет производиться загрузка таблицы.
  • <Начальная позиция буфера (INT)> - (необязательный аргумент) Аргумент задает начальную позицию таблицы в буфере, если аргумент опущен, загрузка будет начинаться с начала буфера.
  • <Размер таблицы в буфере (INT)> - (необязательный аргумент) Аргумент задает размер таблицы в буфере в байтах, если аргумент опущен, размер будет найден автоматически.
  • <Формат (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.
      • Цвета ячеек, шрифта и границ, выбранные из тем, не будут корректно импортированы. Некоторые цвета, имеющие настройки смещения яркости, градиенты и пр. могут отличаться от воспроизводимых на экране Excel.
  • <Индекс или наименование листа (INT,STRING)> - (необязательный аргумент) Для форматов, хранящих более одного листа в файле (xls, xlsx), аргумент позволяет указать наименование загружаемого листа (если аргумент представляет строку) или индекс загружаемого листа (если аргумент представляет число, первый лист имеет индекс 1). Если аргумент опущен, будет загружен активный лист, либо первый лист, если активный лист недоступен. Если указанный по имени или индексу лист не найден, функция вызовет исключение.

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

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

Примеры

//Получение буфера из какого-либо источника (к примеру из обмена TCP/IP)
...

Таб:=Table.Create();
Try
  Таб.LoadFromBuffer(аБуфер,,,"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;