Как двоичные данные сохранить в xlsx
Перейти к содержимому

Как двоичные данные сохранить в xlsx

  • автор:

Уменьшение размера файла Excel электронных таблиц

Если размер файла слишком велик, попробуйте сделать его более управляемым, следуя советам ниже.

Сохранение таблицы в двоичном формате (XSLB)

Чтобы уменьшить размер файла, можно сохранить таблицу в виде двоичной книги (XSLB), а не формата по умолчанию (XSLX). По умолчанию используется формат XML, что важно при использовании данных в сторонних программах, так как XML является открытым стандартом. Однако в большинстве целей двоичного формата достаточно и он сохраняется в файле меньшего формата.

  1. Перейдите в меню >параметры >Сохранить.
  2. В списке Сохранениефайлов в этом формате в списке Сохранить книги выберите Excel Двоичная книга.

Сохранение в двоичном формате

Этот параметр задает двоичный формат по умолчанию. Если вы хотите сохранить по умолчанию Excel книгу (.xlsx), но сохранить текущий файл как двоичный, выберите параметр в диалоговом окке Сохранить как.

Примечание: Если файл находится в SharePoint, возможно, вы не видите параметр Сохранить как. В этом случае вы можете сохранить копию на локальном диске, сохранить ее как двоичное, а затем заменить исходный файл новым двоичным.

  1. Перейдите в > сохранить как и, если файл сохраняется впервые, выберите расположение.
  2. В списке типов файлов выберите Excel Двоичная книга (XLSB).

Сохранение в Excel двоичной книги

Сохранение таблицы в двоичном формате (XSLB)

Чтобы уменьшить размер файла, можно сохранить таблицу в виде двоичной книги (XSLB), а не формата по умолчанию (XSLX). По умолчанию используется формат XML, что важно при использовании данных в сторонних программах, так как XML является открытым стандартом. Однако в большинстве целей двоичного формата достаточно и он сохраняется в файле меньшего формата.

  1. Перейдите в меню >параметры >Сохранить.
  2. В списке Сохранениефайлов в этом формате в списке Сохранить книги выберите Excel Двоичная книга.

Этот параметр задает двоичный формат по умолчанию.

Если вы хотите сохранить по умолчанию Excel книгу (.xlsx), но сохранить текущий файл как двоичный, выберите параметр в диалоговом окне Сохранить как:

  1. Выберите Файл >Сохранить как.
  2. В списке Тип файла выберите Excel двоичной книги (XLSB).

Уменьшение количества таблиц

Если у вас есть таблицы с данными, которые вы не используете и которые не содержат формул, удалите их из таблицы.

Чем больше точек данных в книге, тем больше размер файла. Если удалить неиспользование данных, размер файла уменьшится.

Сохранение изображений с более низким разрешением

  1. Откройте меню Файл, выберите раздел Параметры, а затем — Дополнительно.
  2. В области Размер и качество изображениясделайте следующее:
    • Выберите Отменить редактирование данных. Этот параметр удаляет хранимые данные, которые используются для восстановления исходного состояния изображения после его изменения. Обратите внимание, что если удалить данные редактирования, восстановить изображение будет нельзя.
    • Убедитесь, что не выбрано сжатие изображений в файле.
    • В списке Разрешение по умолчанию выберите разрешение 150ppi или более низкое. В большинстве случаев разрешение не должно быть выше.

Параметры размера и качества изображения

Сжатие рисунков

  1. Выберите рисунок в документе. На ленте появится вкладка Формат рисунка.
  2. На вкладке Формат рисунка в группе Настройка выберите Сжать рисунки.
  3. В области Параметры сжатиясделайте следующее:
    • Чтобы сжать все рисунки в файле, снимайте снимок Применить только к этому рисунку. Если этот параметр выбран, изменения, внесенные здесь, будут влиять только на выбранный рисунок.
    • Выберите Удалить обрезанные области рисунков. Этот параметр удаляет обрезанные данные рисунка, но вы не сможете их восстановить.
  4. В области Разрешениесделайте следующее:
    • Выберите Использовать разрешение по умолчанию.

Параметры сжатия рисунков

Не сохранения кэша данных с файлом

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

  1. Выберите любую ячейку в таблице.
  2. На вкладке Анализ таблицы в группе Таблица выберите Параметры.
  3. В диалоговом окне Параметры таблицы выберите вкладку Данные и сделайте следующее:
  4. Чтобы сохранить исходные данные с файлом, с помощью сохранения исходных данных с помощью сохранения.
  5. Выберите Обновить данные при открытии файла.

Как двоичные данные сохранить в xlsx

xls- ка создается некорректно (не открывается потом). Подскажите, что не так в коде?

Функция ПолучитьМакетXLS(знач ДвоичныеДанныеМакета) Экспорт
Попытка
COMОбъект = Новый COMОбъект(«Excel.Application»);
Исключение
//НеУдалосьСформироватьПечатнуюФорму(ИнформацияОбОшибке());
КонецПопытки;
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(«XLS»);
ДвоичныеДанныеМакета.Записать(ИмяВременногоФайла);

Попытка
COMОбъект.Workbooks.Open(ИмяВременногоФайла);
Исключение
COMОбъект.Quit(0);
COMОбъект = 0;
УдалитьФайлы(ИмяВременногоФайла);
ВызватьИсключение(НСтр(«ru = ‘Ошибка при открытии файла шаблона.'») + Символы.ПС+ КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Возврат COMОбъект;
КонецФункции

Сохранение книги в другом формате файла

В большинстве случаев вы наверняка будете сохранять свои книги в текущем формате файл (XLSX). Но иногда может потребоваться сохранить книгу в другом формате, например для более ранней версии Excel, в текстовый файл или в файл PDF или XPS. Просто помните, что всякий раз, когда вы сохраняете книгу в другом формате файла, часть его форматирования, данных и функций не может быть сохранены.

Список форматов файлов (также называемых типами файлов), которые вы можете (и не можете) открыть или сохранить в них документы в Excel 2013, см. в разделе Поддерживаемые Excel форматы файлов в конце этой статьи.

  1. Откройте книгу, которую вы хотите сохранить.
  2. На вкладке Файл выберите команду Сохранить как. Пункт
  3. В разделе Места выберите расположение, где нужно сохранить книгу. Например, выберите OneDrive, чтобы сохранить файл в веб-хранилище, или Компьютер, чтобы сохранить файл в локальной папке, такой как Документы. Выбор варианта расположения
  4. В диалоговом окне Сохранение документа перейдите в нужное расположение. Диалоговое окно
  5. В списке Тип файла выберите нужный формат. При необходимости используйте стрелки для прокрутки и выбора форматов файлов, которые не видны в списке.

Примечание: Список доступных форматов файлов зависит от типа активного листа в книге (лист, лист диаграммы или другой).

Преобразование книги Excel 97—2003 в текущий формат файла

Если вы открыли книгу Excel 97—2003, но вам не нужно хранить ее в этом формате файла, просто преобразуйте книгу в текущий формат файла (XLSX).

  1. В меню Файл выберите команду Сведения.
  2. Нажмите кнопку Преобразовать.

Кнопка

Поддерживаемые Excel форматы файлов

В Excel 2013 вы можете открывать и сохранять файлы проектов в перечисленных ниже форматах.

Форматы файлов Excel

Стандартный формат файлов Excel 2007—2013, основанный на языке XML. В этом формате нельзя сохранять код макросов Microsoft Visual Basic для приложений (VBA) и листы макросов Microsoft Office Excel 4.0 (XLM).

Книга Strict Open XML

Версия ISO Strict формата файла книги Excel (XLSX).

Формат Excel 2007–2013 на основе XML с поддержкой макросов. В этом формате можно сохранять код макросов VBA и листы макросов Excel 4.0 (XLM).

Двоичная книга Excel

Формат двоичных файлов (BIFF12) для Excel 2007—2013.

Стандартный формат файлов Excel 2007—2013 для шаблонов Excel. Не позволяет сохранять код макросов VBA, а также листы макросов Microsoft Excel 4.0 (XLM).

Формат файлов с поддержкой макросов для шаблонов Excel в приложениях Excel 2007—2013. В этом формате можно сохранять код макросов VBA и листы макросов Excel 4.0 (XLM).

Книга Excel 97—2003

Формат двоичных файлов Excel 97 — Excel 2003 (BIFF8).

Шаблон Excel 97- Excel 2003

Формат двоичных файлов Excel 97 — Excel 2003 (BIFF8) для хранения шаблонов Excel.

Книга Microsoft Excel 5.0/95

Формат двоичных файлов Excel 5.0/95 (BIFF5).

Таблица XML 2003

Формат файлов XML-таблиц 2003 (XMLSS).

Данные XML Data

Формат данных XML.

Надстройка Microsoft Excel

Формат файлов надстроек Excel 2007—2013 на основе XML с поддержкой макросов. Надстройка — это программа, обеспечивающая возможность выполнения дополнительного кода. Позволяет использовать проекты VBA и листы макросов Excel 4.0 (XLM).

Надстройка Excel 97—2003

Надстройка Excel 97-2003, дополнительная программа, предназначенная для выполнения дополнительного кода. Поддерживает использование проектов VBA.

Формат файла Excel 4.0, в котором сохраняются только обычные листы, листы диаграмм и макросов. В приложении Excel 2013 можно открыть книгу в этом формате, но сохранить в нем файл Excel нельзя.

Форматы текстовых файлов

Форматированный текст (разделители — пробелы)

Формат для Lotus, с разделителями — пробелами. Сохраняет только активный лист

Текст (разделители — знаки табуляции)

Сохраняет книгу в виде текстового файла, разделенного знаками табуляции, — для использования в другой операционной системе Microsoft Windows — и гарантирует, что символы табуляции, разрывы строк и другие символы будут интерпретироваться правильно. Сохраняет только активный лист.

Сохраняет книгу в виде текстового файла, разделенного знаками табуляции, — для использования в операционной системе Макинтош — и гарантирует, что символы табуляции, разрывы строк и другие символы будут интерпретироваться правильно. Сохраняет только активный лист.

Сохраняет книгу в виде текстового файла, разделенного знаками табуляции, — для использования в операционной системе MS-DOS — и гарантирует, что символы табуляции, разрывы строк и другие символы будут интерпретироваться правильно. Сохраняет только активный лист.

Текст в кодировке Unicode

Сохраняет книгу в виде текста в кодировке Unicode, стандартной кодировке символов, разработанном Unicode Consortium.

CSV (разделители — запятые)

Сохраняет книгу в виде текстового файла, разделенного знаками запятой, — для использования в другой операционной системе Windows — и гарантирует, что символы табуляции, разрывы строк и другие символы будут интерпретироваться правильно. Сохраняет только активный лист.

Сохраняет книгу в виде текстового файла, разделенного знаками запятой, — для использования в операционной системе Макинтош — и гарантирует, что символы табуляции, разрывы строк и другие символы будут интерпретироваться правильно. Сохраняет только активный лист.

Сохраняет книгу в виде текстового файла, разделенного знаками запятой, — для использования в операционной системе MS-DOS — и гарантирует, что символы табуляции, разрывы строк и другие символы будут интерпретироваться правильно. Сохраняет только активный лист.

Формат обмена данными. Сохраняет только активный лист.

Формат Symbolic Link. Сохраняется только активный лист.

Примечание: Если вы сохраните книгу в любом текстовом формате, будут потеряны все элементы форматирования.

Другие форматы файлов

dBase III и IV. Файлы этого формата можно открывать в Microsoft Excel, но сохранять файлы Microsoft Excel в формате dBase нельзя.

Таблица OpenDocument. Файлы приложения Excel 2010 можно сохранять в формате, который позволяет открывать их в редакторах электронных таблиц, поддерживающих формат таблиц OpenDocument, таких как Google Docs или OpenOffice.org Calc. Таблицы в формате ODS также можно открывать в приложении Excel 2010. При сохранении и открытии ODS-файлов может быть потеряно форматирование.

Portable Document Format (PDF). Этот формат файла сохраняет форматирование документов и позволяет делиться файлами. При просмотре PDF-файла в Интернете и выводе его на печать сохраняется его исходное представление. Данные в файле нельзя легко изменить. Формат PDF также полезен для документов, которые будут воспроизводиться с помощью промышленной печати.

Спецификация XML-бумаги (XPS). Этот формат файла сохраняет форматирование документов и позволяет делиться файлами. При просмотре или печати XPS-файла сохраняется именно тот формат, который вы хотите использовать, и данные в нем нельзя легко изменить.

Форматы файлов, использующие буфер обмена

Если вы скопировали данные в буфер обмена в одном из следующих форматов файлов, вы можете вставить их в Excel, используя команду Вставка или Специальная вставка (Главная > Буфер обмена > Вставка).

Идентификаторы типа буфера обмена

Рисунки в формате Windows Metafile (WMF) или Windows Enhanced Metafile (EMF).

Примечание: Если вы скопируете метафайл Windows (WMF) из другой программы, Microsoft Excel вставит рисунок в виде расширенного метафайла (EMF).

Рисунки, сохраненные в растровом формате (BMP).

Форматы файлов Microsoft Excel

Двоичные форматы файлов для Excel версий 5.0/95 (BIFF5), Excel 97—2003 (BIFF8) и приложения Excel 2013 (BIFF12).

Формат Symbolic Link.

Формат обмена данными.

Текст (разделители — знаки табуляции)

Текстовый формат со знаками табуляции в качестве разделителей.

CSV (разделители — запятые)

Формат с разделителями-запятыми

Форматированный текст (разделители — пробелы)

RTF. Только из Excel.

GIF, JPG, DOC, XLS или BMP

Объекты Microsoft Excel, объекты правильно зарегистрированных программ, поддерживающих OLE 2.0 (OwnerLink), а также Picture или другой формат презентации.

GIF, JPG, DOC, XLS или BMP

OwnerLink, ObjectLink, Link, Picture или другой формат.

Формат рисованного объекта Office или Picture (EMF)

Отображаемый текст, текст OEM

Веб-страница в одном файле

Веб-страница в одном файле (MHT или MHTML). Этот формат файла объединяет встроенные рисунки, приложения, связанные документы и другие вспомогательные элементы, на которые есть ссылки в документе.

Примечание: Если вы скопируете текст из другой программы, Microsoft Excel вставит этот текст в формате HTML независимо от формата исходного текста.

Форматы файлов, не поддерживаемые в Excel 2013

Указанные ниже форматы файлов больше не поддерживаются, поэтому вы не сможете открыть файлы этих форматов или сохранять файлы в этих форматах.

Для работы с данными книги в программе, которая больше не поддерживается, попробуйте выполнить указанные ниже действия.

  • Найти в Интернете компанию, выпускающую конвертеры файлов для форматов, не поддерживаемых Excel.
  • Сохраните книгу в другом формате файла, который можно открыт в другой программе. Например сохраните книгу в электронную таблицу XML или текстовый формат файла, который может поддерживаться в другой программе.

Идентификаторы типа буфера обмена

Форматы файлов Excel 2.0, 3.0 и 2.x

WK1, FMT, WK2, WK3, FM3, WK4

.WK1, .WK2, .WK3, .WK4, .WKS

Форматы файлов Lotus 1-2-3 (все версии)

Формат файлов Microsoft Works (все версии)

Формат файла DBASE II

Формат файла Quattro Pro для MS-DOS

Quattro Pro 5.0 и 7.0 для Windows.

Книгу Excel 2007 и более поздних версий можно сохранить в формате предыдущих версий Excel, в файле текстового формата, а также в других форматах, таких как файлы PDF и XPS. Обычно сохранение происходит в формате XLSX, но формат файлов, используемый по умолчанию для сохранения, можно изменить. Если вы часто пользуетесь командой Сохранить как, можно добавить ее на панель быстрого доступа.

Сохранение книги Excel в файле другого формата

Важно: При сохранении книги в формате файла Excel другой версии форматирование и возможности, уникальные для Excel 2007 и более поздних версий, будут потеряны. Дополнительные сведения см. в статье Использование Excel с более ранними версиями Excel.

  1. Откройте в Excel книгу, которую вы хотите сохранить в формате, подходящем для использования в другой программе.
  2. На вкладке Файл выберите команду Сохранить как.
  3. Чтобы сохранить книгу в другом месте, укажите диск и расположение в полях с именем папки и путем к файлу.
  4. Примите имя, предложенное в поле Имя файла, или введите новое имя книги.
  5. В раскрывающемся списке Тип файла выберите формат, подходящий для использования в другой программе.

Для прокрутки списка и отображения большего числа форматов используйте стрелки.

Примечание: В зависимости от типа активного листа (лист книги, лист диаграммы или другие типы листов) будут доступны разные форматы файлов для сохранения.

Совет: Дополнительные сведения о сохранении книги в файл формата PDF или XPS см. в статье Сохранение в формате PDF или XPS.

Сохранение файла другого формата в формате Excel 2007 и более поздних версий

Любой файл, который открывается в Excel 2007 и более поздних версий, можно сохранить в текущем формате книги Excel (XSLX). Таким образом вы сможете воспользоваться новыми возможностями, которые не поддерживаются в файлах других форматов.

Примечание: При сохранении книги, созданной в более ранней версии Excel, в формате книги Excel 2007 и более поздних версий некоторые возможности и часть форматирования могут быть потеряны. Сведения о неподдерживаемых функциях Excel 97–2003 см. в статье Использование Excel с более ранними версиями Excel.

  1. Откройте файл, который вы хотите сохранить в формате текущей версии.
  2. На вкладке Файл выберите команду Сохранить как.
  3. Чтобы сохранить файл в другом месте, укажите диск и расположение в полях с именем папки и путем к файлу.
  4. Примите имя, предложенное в поле Имя файла, или введите новое имя книги.
  5. В списке Тип файла выберите один из вариантов:
    • Если книга была создана в более ранней версии Excel и содержит макросы, которые нужно в ней оставить, выберите Книга Excel с поддержкой макросов (*.xlsm).
    • Если вы хотите сохранить книгу как шаблон, выберите Шаблон Excel (*.xltx).
    • Если книга была создана в более ранней версии Excel и содержит макросы, которые нужно в ней оставить, а вы хотите сохранить ее как шаблон, выберите Шаблон Excel с поддержкой макросов (*.xltm).
    • Если вы хотите сохранить книгу в текущем формате книги Excel, выберите Книга Excel (*.xlsx).
    • Если вы хотите сохранить книгу в новом двоичном формате файла, выберите Двоичная книга Excel (*.xlsb).
  6. Нажмите кнопку Сохранить.

Изменение формата файлов, используемого для сохранения по умолчанию

Вы можете изменить тип файла, используемого по умолчанию при сохранении книги.

  1. На вкладке Файл выберите пункт Параметры.
  2. В категории Сохранение в разделе Сохранение книг в поле Сохранять файлы в следующем формате выберите тот формат файла, который вы хотите использовать по умолчанию.

Добавление команды «Сохранить как» на панель быстрого доступа

Команду Сохранить как нельзя вывести на ленту в виде кнопки. Однако вы можете добавить ее на панель быстрого доступа.

Quick Access Toolbar arrow

  1. Щелкните стрелку раскрывающегося списка на панели быстрого доступа и выберите Другие команды.
  2. Убедитесь, что в поле Выбрать команды из выбраны Часто используемые команды.
  3. Найдите в списке кнопку Сохранить как и выберите ее.
  4. Нажмите кнопку Добавить.

Книгу Microsoft Office Excel 2007 можно сохранить в файле другого формата. Вы можете сохранить ее в формате предыдущих версий, в формате текстового файла, а также в других форматах, таких как файлы PDF и XPS. Любой файл, который открывается в Office Excel 2007, можно сохранить в формате книги Excel 2007. Excel 2007 по умолчанию сохраняет файлы в формате XLSX, но вы можете изменить формат, используемый для сохранения по умолчанию.

Если вы часто пользуетесь командой Сохранить как, можно добавить ее на панель быстрого доступа.

Сохранение файла в формате Excel 2007

Любой файл, который открывается в Excel 2007, можно сохранить в текущем формате книги Excel (*.xlsx). Таким образом вы сможете воспользоваться новыми возможностями Excel 2007, которые не поддерживаются в файлах других форматов, например сможете увеличивать размер ячеек.

Примечание: При сохранении книги, созданной в более ранней версии Excel, в формате книги Excel 2007 некоторые возможности и часть форматирования могут быть потеряны.

  1. Откройте книгу, которую вы хотите сохранить в формате книги Excel 2007.
  2. Нажмите кнопку Microsoft Office , а затем щелкните Сохранить как.
  3. Примите имя, предложенное в поле Имя файла, или введите новое имя книги.
  4. В списке Тип файла выберите один из вариантов:
    • Если книга была создана в более ранней версии Excel и содержит макросы, которые нужно в ней оставить, выберите формат XLSM.
    • Если вы хотите сохранить книгу как шаблон, выберите формат XLTX.
    • Если книга была создана в более ранней версии Excel и содержит макросы, которые нужно в ней оставить, а вы хотите сохранить ее как шаблон, выберите формат XLTM.
    • Если вы хотите сохранить книгу в текущем формате книги Excel, выберите формат XLSX.
    • Если вы хотите сохранить книгу в новом двоичном формате файла, выберите формат XLSB.
    • Дополнительные сведения о форматах файлов см. в статье Поддерживаемые Excel форматы файлов.
  5. Нажмите кнопку Сохранить.

Изменение формата файлов, используемого для сохранения по умолчанию

Вы можете изменить тип файла, используемого по умолчанию при сохранении книги.

  1. Нажмите кнопку Microsoft Office , а затем — Параметры Excel.
  2. В категории Сохранение в разделе Сохранение книг в поле Сохранять файлы в следующем формате выберите тот формат файла, который вы хотите использовать по умолчанию.

Добавление команды «Сохранить как» на панель быстрого доступа

Команда Сохранить как недоступна в качестве кнопки на Пользовательский интерфейс Microsoft Office Fluent ленте. Однако вы можете добавить ее на панель быстрого доступа.

  1. Нажмите кнопку Microsoft Office .
  2. Щелкните правой кнопкой мыши элемент Сохранить как и выберите Добавить на панель быстрого доступа.

Как прочитать файл Excel в 1С 8.3

Весьма частая задача, с которой сталкивается 1С разработчик – это чтение файлов Excel и загрузка их в 1С. Есть как минимум два способа прочитать файл Excel – средствами платформы 1С, или используя COM-объект приложения MS Excel. В статье рассматривается чтение файлов xls, xlsx при помощи табличного документа.

Общая информация

В платформе 1С 8 существует объект ТабличныйДокумент, который позволяет формировать и выводить на экран печатные формы в табличном виде. Но у табличного документа есть еще одно применение – чтение данных из табличных файлов. Поддерживаются форматы xls, xlsx и ods. Т.е. можно загружать табличные файлы, созданные в пакете MS Office или OpenOffice Calc.

Значения типа Число или Дата, содержащиеся в ячейках исходного табличного файла, можно считать двумя способами – как значение, либо как текст. Рассмотрим пример: пусть в ячейке содержится число 123,456, и установлен формат с округлением до целого числа; в этом случае отображаться будет текст “123”, а значение будет храниться 123,456

  1. Если прочитать с указанием способа чтения как “Значение”, в табличный документ 1С будет прочитано исходное значение 123,456
  2. Если прочитать с указанием способа чтения как “Текст”, значение будет потеряно, и в табличный документ прочитается текст “123”

Использование объекта ВременноеХранилище

Вспомогательные процедуры — диалог выбора файла

Следующий код не является обязательным для решения задачи – путь к исходному файлу можно указать в коде, ввести вручную, скопировать из адресной строки ОС или прочитать из БД – вариантов очень много. Мы же рассмотрим пример, когда пользователь сам указывает файл на клиентском компьютере, и путь к этому файлу помещается в реквизит. В примере будем использовать реквизит формы ПутьКФайлу

Чтение файла Excel. Диалог выбора файла

Создадим обработчик события НачалоВыбора:

&НаКлиенте Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ВыбратьФайлНаКлиенте(); КонецПроцедуры

Для того чтобы код был универсальным, и работал в случае отказа от модальных синхронных методов, нам понадобится создать асинхронную процедуру ВыбратьФайлНаКлиенте(). В ней мы создаем диалог выбора для открытия файла, указываем фильтр с нужными форматами – xls и xlsx, а также отключаем множественный выбор файлов. Перед методом ВыбратьАсинх добавляем ключевое слово Ждать, с тем чтобы дальнейший код дождался возвращаемого значения.

&НаКлиенте Асинх Процедура ВыбратьФайлНаКлиенте() Перем Диалог; Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Фильтр = "Excel файлы(*.xls;*.xlsx)|*.xls;*.xlsx"; Диалог.ИндексФильтра = 0; Диалог.ПредварительныйПросмотр = Ложь; Диалог.МножественныйВыбор = Ложь; РезультатВыбора = Ждать Диалог.ВыбратьАсинх(); Если РезультатВыбора > Неопределено Тогда ПутьКФайлу = РезультатВыбора[0]; КонецЕсли; КонецПроцедуры

Двоичные данные во временное хранилище

Логика кода будет следующая. Нам понадобятся двепроцедуры – клиентский обработчик команды, и серверный метод который и будет непосредственно считывать переданный файл.

  1. проверяем, указан ли путь к файлу. Если не указан – прекращаем выполнение
  2. Получаем двоичные данные из файла по указанному пути
  3. Помещаем эти двоичные данные во временное хранилище
  4. Далее передаем на сервер адрес этого временного хранилища
&НаКлиенте Процедура ДвоичныеДанныеВоВременноеХранилище(Команда) Если Не ЗначениеЗаполнено(ПутьКФайлу) Тогда Возврат; КонецЕсли; ДД = Новый ДвоичныеДанные(ПутьКФайлу); АдресВХ = ПоместитьВоВременноеХранилище(ДД); ПрочитатьИзВХНаСервере(АдресВХ); КонецПроцедуры
  1. Создаем временный файл с нужным расширением (в примере – xlsx)
  2. Получаем двоичные данные из временного хранилища
  3. Записываем во временный файл
  4. Определяем вариант чтения файла – читать значения табличного документа как текст, или как значения
  5. Далее используем метод Прочитать, и считываем из временного файла данные в табличный документ

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

&НаСервере Процедура ПрочитатьИзВХНаСервере(АдресВХ, Режим = "Значение") ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xlsx"); ДД = ПолучитьИзВременногоХранилища(АдресВХ); ДД.Записать(ИмяВременногоФайла); Если Режим = "Текст" Тогда СпособЧтения = СпособЧтенияЗначенийТабличногоДокумента.Текст; Иначе СпособЧтения = СпособЧтенияЗначенийТабличногоДокумента.Значение; КонецЕсли; Попытка ТабДок.Прочитать(ИмяВременногоФайла, СпособЧтения); Исключение КонецПопытки; КонецПроцедуры

Рассмотренный пример является достаточно универсальным – процедуру ПрочитатьИзВХНаСервере() можно использовать с любыми двоичными данными, помещенными во временное хранилище. Это могут быть двоичные данные, полученные с веб-сервиса, считанные из базы данных, полученные из макета, созданного в конфигураторе – код от этого не изменится.

Помещение файла на сервер в 1С

Более простой, но менее универсальный способ, предназначенный исключительно для передачи файла с клиента на сервер – это использование метода НачатьПомещениеФайлаНаСервер. В платформе предусмотрено несколько методов для помещения файлов – как одиночных, так и нескольких одновременно. Эти методы делятся на синхронные и асинхронные. Начиная с версии 8.3.18 появились методы, использующие ключевые слова Асинх и Ждать. Аналогичный метод мы рассмотрели при работе с диалогом. Далее разберем “классический” вариант с обработкой оповещения.

Логика кода следующая:

  1. Создаем описание оповещения и указываем в нем процедуру, которая будет вызвана после окончания помещения файла на сервер
  2. Указываем параметры диалога выбора файла и добавляем фильтр
  3. Вызываем помещение файла на сервер
  4. После того как файл помещен во временное хранилище, используем ту же процедуру, которую мы реализовали в первом примере – ПрочитатьИзВХНаСервере. В этом примере мы для разнообразия используем способ чтения значений как “Текст”.
&НаКлиенте Процедура ПередачаФайла(Команда) ОбработкаОкончанияПомещения = Новый ОписаниеОповещения("ОбработчикОкончанияПомещения", ЭтотОбъект); ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов; ПараметрыДиалога.Фильтр = "Excel файлы(*.xls;*.xlsx)|*.xls;*.xlsx"; НачатьПомещениеФайлаНаСервер(ОбработкаОкончанияПомещения, , , АдресВХ, ПараметрыДиалога, ЭтотОбъект.УникальныйИдентификатор); КонецПроцедуры &НаКлиенте Процедура ОбработчикОкончанияПомещения(ОписаниеПомещенногоФайла, ДополнительныеПараметры) Экспорт АдресФайла = ОписаниеПомещенногоФайла.Адрес; ПрочитатьИзВХНаСервере(АдресФайла, "Текст"); КонецПроцедуры

Использование потока для чтения файла

В случае, если нам нужно просто передать файл с клиента на сервер для сохранения в базу данных, либо мы хотим прочитать файл в формате ods(Open Documents Spreadsheet) или mxl(встроенный формат табличных документов 1С), мы можем воспользоваться еще одним способом – с использованием потоков данных.

В этом случае нам не понадобится создавать временный файл и следить за его корректным удалением. Код будет очень похож на прерыдущий пример. Мы также выбираем файл с использованием метода НачатьПомещениеФайлаНаСервер, но указываем другой фильтр. А в обработчике оповещения вызываем серверную процедуру ПрочитатьВПоток. В методе Прочитать() нам нужно явным образом указать тип файла табличного документа, который мы считываем.

&НаКлиенте Процедура ПрочитатьЧерезПоток(Команда) ОбработкаОкончанияПомещения = Новый ОписаниеОповещения("ОбработчикОкончанияПомещенияПоток", ЭтотОбъект); ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов; ПараметрыДиалога.Фильтр = "файлы ODS или MXL|*.ods;*.mxl"; НачатьПомещениеФайлаНаСервер(ОбработкаОкончанияПомещения, , , АдресВХ, ПараметрыДиалога, ЭтотОбъект.УникальныйИдентификатор); КонецПроцедуры &НаКлиенте Процедура ОбработчикОкончанияПомещенияПоток(ОписаниеПомещенногоФайла, ДополнительныеПараметры) Экспорт АдресФайла = ОписаниеПомещенногоФайла.Адрес; ПрочитатьВПоток(АдресФайла); КонецПроцедуры &НаСервере Процедура ПрочитатьВПоток(АдресФайла) ДД = ПолучитьИзВременногоХранилища(АдресФайла); Поток = ДД.ОткрытьПотокДляЧтения(); ТабДок.Прочитать(Поток,,ТипФайлаТабличногоДокумента.ODS); Поток.Закрыть(); КонецПроцедуры

Надеюсь, рассмотренные примеры помогут вам справиться с задачей передать файл с клиента на сервере и прочитать файл Excel в 1С.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *