Tooprogram.ru

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Excel cells 1с

Работа с Excel в 1С 8.3

Excel — это сторонняя программа, ее можно запускать из 1С в невидимом и видимом режиме и пользоваться всеми возможностями. Excel должен быть установлен на компьютере. Для примера приведено чтение таблицы в из файла Excel на клиенте, передача на сервер и создание на сервере таблицы значений с данными из файла. Такую задачку любят давать на собеседованиях на должность программиста 1С.

&НаКлиенте
Процедура НажатиеКноки ()
// обращаемся к Excel
Попытка
Эксель = новый COMОбъект ( «Excel.Application» );
Исключение
Сообщить ( ОписаниеОшибки ());
Возврат;
КонецПопытки;
ПутьКФайлу = «C:Некоторый файл.xlsx» ;
// открываем ексель файл
Книга = Эксель . WorkBooks . Open ( ПутьКФайлу );
// переходим на первую страницу
Лист = Книга . WorkSheets ( 1 );
// для количества колонок и строк в экселе есть специальные ячейки
ВсегоКолонок = Лист . Cells ( 1 , 1 ). SpecialCells ( 11 ). Column ;
ВсегоСтрок = Лист . Cells ( 1 , 1 ). SpecialCells ( 11 ). Row ;

// сохраняем файл в массив строк, где строка это так же массив (на клиенте
// нельзя создавать таблицу значений
НаборСтрокФайла = новый массив ;
для Строка = 1 по ВсегоСтрок цикл
МассивСтрока = новый массив ;
для Колонка = 1 по ВсегоКолонок цикл
// получаем значение из ячейки excel
Значение = СокрЛП ( Лист . Cells ( Строка , Колонка ). Value );
МассивСтрока . Добавить ( Значение );
КонецЦикла;
НаборСтрокФайла . Добавить ( МассивСтрока );
КонецЦикла;
// запишем файл с другим именем
Эксель . SaveAs ( «C:ФайлСДругимИменем.xlsx» );
// закрываем ексель, иначе он останется висеть в памяти
Эксель . Application . Quit ();

&НаСервере
Процедура СоздатьИОбработатьТаблицуЗначений ( НаборСтрокФайла , ВсегоКолонок )
ТЗ = новый ТаблицаЗначений ;
// создаем колонки таблицы значений (столько сколько в файле ексель)
для й = 1 по ВсегоКолонок цикл
ТЗ . Колонки . Добавить ( «кол» + Формат(й, «ЧЦ=4; ЧГ=» ));
КонецЦикла;
// переносим строки из массива в таблицу значений
для каждого МассивСтрока из НаборСтрокФайлацикл
НовСтрока = ТЗ . Добавить ();
для Колонка = 1 по ВсегоКолонок цикл
// переносим значение из массива в таблицу
НовСтрока [ Колонка — 1 ] = МассивСтрока [ Колонка — 1 ];
КонецЦикла;
КонецЦикла;

Далее приводятся наиболее частые ситуации, возникающие на

Поиск и замена текста в ячейках файла Excel

//Выбираем область поиска — весь лист
ОбластьПоиска = Лист . Cells ;
// Начинаем поиск с левого верхнего угла
НачалоЛиста = Лист . Cells ( 1 , 1 );
// Ищем ячейку с текстом «привет»
ОбластьПараметр = ОбластьПоиска . Find ( «привет» , НачалоЛиста );
// Если нашли вывсодим найденую строку
Если ОбластьПараметр <> неопределено Тогда
Сообщить ( ОбластьПараметр . Value ) ;
КонецЕсли ;

Работа со строками в Excel

//Выбираем первую строку
НачальнаяСтрока = Лист . Cells ( 1 , 1 );
// Выделяем всю строку
НачальнаяСтрока . EntireRow . Select ();
// Копируем выделенное
НачальнаяСтрока . EntireRow . Copy ();
// Вставляем (новая строка будет вставлена тут же)
НачальнаяСтрока . EntireRow . Insert ();
// Удалим строку
НачальнаяСтрока . EntireRow . Delete ();

Прочие полезные методы Excel

Эксель.Visible = Видимость;0 — Excel не виден, 1 — виден.
Книга = Эксель.WorkBooks.Add();Создание новой книги (файла) Excel.
Книга.SaveAs(ИмяФайла);Сохранение книги Excel.
Лист = Книга.WorkSheets.Add();Добавление нового листа в книгу.
Книга = Эксель.WorkBooks.Open(ИмяФайла);Открытие существующей книги (файла) Excel.
Лист = Книга.WorkSheets(НомерЛиста);Установка листа в качестве рабочего с номером НомерЛиста.
Лист.Name = ИмяЛиста;Задание рабочему листу имени ИмяЛиста
Лист.PageSetup.Zoom = Масштаб;Задание параметра страницы «Масштаб» (от 10 до 400).
Лист.PageSetup.Orientation = Ориентация;Ориентация: 1 — книжная, 2 — альбомная.
Лист.PageSetup.LeftMargin = Эксель.CentimetersToPoints(Сантиметры);Задание левой границы (в сантиметрах).
Лист.PageSetup.TopMargin = Эксель.CentimetersToPoints(Сантиметры);Задание верхней границы (в сантиметрах).
Лист.PageSetup.RightMargin = Эксель.CentimetersToPoints(Сантиметры);Задание правой границы (в сантиметрах).
Лист.PageSetup.BottomMargin = Эксель.CentimetersToPoints(Сантиметры);Задание нижней границы (в сантиметрах).
Лист.Columns(НомерКолонки).ColumnW >

Задание ширины колонке.
Лист.Cells(НомерСтроки, НомерКолонки).Value = Значение;Ввод данных в ячейку.
Лист.Cells(НомерСтроки,НомерКолонки).Font.Name = ИмяШрифта;Установка шрифта в ячейке.
Лист.Cells(НомерСтроки,НомерКолонки).Font.Size = РазмерШрифта;Установка размера шрифта в ячейке.
Лист.Cells(НомерСтроки,НомерКолонки).Font.Bold = Жирный;1 — жирный шрифт, 0 — нормальный.
Лист.Cells(НомерСтроки,НомерКолонки).Font.Italic = Курсив;1 — наклонный шрифт, 0 — нормальный.
Лист.Cells(НомерСтроки,НомерКолонки).Font.Underline = Подчеркнутый;2 — подчеркнутый, 1 — нет.
Лист.Cells(НомерСтроки, НомерКолонки).NumberFormat = Формат;Установка формата данных ячейки.
Лист.Cells(НомерСтроки,НомерКолонки).Borders.Linestyle = ТипЛинии;Установка рамок ячейки. 1 — тонкая сплошная.
Лист.Protect();Установка защиты на лист
Лист.UnProtect();Снятие защиты с листа
Лист.Cells(Строка, Столбец).Locked=0;Ячейка будет доступной (и после установки защиты на лист)
Эксель.DisplayAlerts = False;Убрать все сообщение при открытии файла. Сообщения останавливают выполнения кода до реакции пользователя

Работа с Excel в 1С 8.3: 2 комментария

Считываются все Листы Excel. Не понятно как считать только один Лист? Наконец 1С родила долгожданный функционал!

1С и Excel. таблица функций Excel доступных из 1С

Многие знают, что Excel гораздо старше 1С. На мой взгляд, это очень успешный продукт, и нареканий о нем я не слышал. Excel прост и универсален. Он способен выполнять не только простые арифметические операции, но и сложные вычисления, построение графиков и т.п. Знаю примеры, когда организации до перехода на 1С вели часть бухгалтерии в Excel. Многие и сейчас параллельно используют две программы. В этой статье рассмотрим способы обмена данными между 1С и Excel.

Таблицы 1С и Excel.

Многие пользователи для удобства работы сохраняют таблицы 1С (печатные формы) в формате Excel (*.xls). После чего в полученном файле делают различные группировки, сортировки, вычисления и т.п. Связано это с тем, что в таблицах 1С нет такого огромного функционала как в таблицах Excel. Но в версии 1С 8.0 есть нововведения, делающих работу с таблицами более комфортной.

Замечание: В Excel разделителем дробной части считается символ «,». Поэтому перед сохранением таблицы 1С в формате Excel замените в ней другой разделитель (например «.») на «,». Иначе в Excel с этими числами не удастся произвести вычисления, или они вообще не будут отображаться как числа. Например, в таблице 1С «15.2» отобразится в Excel как «15.фев».

Получение данных из Excel.

Доступ из 1С к Excel производится посредством OLE. Например, код

Попытка
Эксель = СоздатьОбъект( «Excel.Application» );
Исключение

Сообщить(ОписаниеОшибки() + » Программа Exсel не установлена на данном компьютере!» );
Возврат;

позволит нам получить доступ через переменную «Эксель» к запущенному приложению Excel. А далее уже можно получить доступ к книге (файлу), листу и ячейке с данными. Далее примеры кода.

Открытие книги (файла):

Книга = Эксель . WorkBooks . Open ( ПутьКФайлу );

ПутьКФайлу — полный путь к файлу книги Excel.

Выбор листа книги для работы с ним:

Лист = Книга . WorkSheets ( НомерЛиста );

Лист = Книга . WorkSheets ( ИмяЛиста );

НомерЛиста — номер листа в книге, ИмяЛиста — имя листа в книге.

Получение значения ячейки листа:

Значение = Лист . Cells ( НомерСтроки , НомерКолонки ). Value ;

НомерСтроки, НомерКолонки — номер строки и номер колонки, на пересечении которых находится ячейка.

Важно: не забывайте поле выполнения нужных действий добавлять код Эксель . Quit (); , иначе запущенный процесс останется незавершенным и будет занимать память и процессор компьютера.

Вывод данных в Excel.

Для вывода (выгрузки) данных в Excel необходимо либо открыть существующую книгу, либо

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

Попытка
Эксель = СоздатьОбъект( «Excel.Application» );
Исключение

Сообщить(ОписаниеОшибки() + » Программа Exсel не установлена на данном компьютере!» );
Возврат;

КонецПопытки;
Книга = Эксель . WorkBooks . Add ();

Так как при создании книги в Excel автоматически создаются листы (Сервис->Параметры->Общие->Листов в новой книге), то нужно лишь произвести выбор листа, с которым будет вестись работа:

Лист = Книга . WorkSheets ( НомерЛиста );

либо добавить в книгу новый лист, если необходимо:
Лист = Книга . Sheets . Add ();

Следующим шагом будет установка значения ячейки:
Лист . Cells ( НомерСтроки , НомерКолонки ). Value = Значение ;

НомерСтроки, НомерКолонки — номер строки и номер колонки, на пересечении которых находится ячейка.

И в конце нужно произвести запись созданной книги:

Попытка
Книга . SaveAs ( ПутьКФайлу );
Исключение

Сообщить(ОписаниеОшибки() + » Файл не сохранен!» );
Возврат;

ПутьКФайлу — полный путь к файлу книги Excel (включая имя).

Важно: не забывайте, что в имени файлов не должно содержаться символов / : * ? » > Часто используемые методы для чтения/установки значений в Excel.

Эксель . Visible = Видимость ;

Книга = Эксель . WorkBooks . Add ();

Книга . SaveAs ( ИмяФайла );

Лист = Книга . WorkSheets . Add ();

Книга = Эксель . WorkBooks . Open ( ИмяФайла );

Лист = Книга . WorkSheets ( НомерЛиста );

Лист . Name = ИмяЛиста ;

Лист . PageSetup . Zoom = Масштаб ;

Лист . PageSetup . Orientation = Ориентация ;

Лист . PageSetup . LeftMargin = Эксель . CentimetersToPoints ( Сантиметры );

Лист . PageSetup . TopMargin =

Эксель . CentimetersToPoints ( Сантиметры );

Лист . PageSetup . RightMargin =

Эксель . CentimetersToPoints ( Сантиметры );

Лист . PageSetup . BottomMargin =

Эксель . CentimetersToPoints ( Сантиметры );

Лист . Columns ( НомерКолонки ) . ColumnWidth = Ширина ;

Лист . Cells ( НомерСтроки , НомерКолонки ) . Value = Значение ;

Лист . Cells ( НомерСтроки , НомерКолонки ) . Font . Name = ИмяШрифта ;

Лист . Cells ( НомерСтроки , НомерКолонки ) . Font . Size = РазмерШрифта ;

Лист . Cells ( НомерСтроки , НомерКолонки ) . Font . Bold = Жирный ;

Лист . Cells ( НомерСтроки , НомерКолонки ) . Font . Italic = Курсив ;

Лист . Cells ( НомерСтроки , НомерКолонки ) . Font . Underline =

Лист . Cells ( НомерСтроки , НомерКолонки ) . NumberFormat =

Лист . Cells ( НомерСтроки , НомерКолонки ) . Borders . Linestyle =

Инструкция по загрузке из Excel в 1C для программиста

Нужно загрузить большой объем данных из Экселя в 1С? Настроить постоянную загрузку накладных и товаров? Обратитесь к нам! Оставьте заявку в форме выше или позвоните нам по телефону +7 499 350 29 00.

Несомненно, одним из самых распространенных способов массового занесения информации в информационную систему является загрузка информации в 1С 8.3 из Excel. Ниже я рассмотрю пошаговое создание обработки загрузки данных и дам ссылку на скачивание её.

Данная инструкция написана для программистов, для пользователей 1С скорее подойдут следующие статьи:

  • Загрузка данных штатными методами в 1С — Загрузка из Excel на примере прайс-листа.
  • Если вам необходимо загрузить номенклатуру в 1С — пример загрузки товаров в 1С 8.3.

Самые популярные данные, которые требуются для загрузки в 1С из Excel:

  • номенклатура и её штрих-коды, в том числе с картинками;
  • накладные от поставщика;
  • прайс-листы от контрагентов;
  • начальные остатки по складам или бухгалтерскому учету.

MS Excel — программа для работы с электронными таблицами, созданная компанией Microsoft. Она предоставляет возможности экономико-статистических расчетов, графические инструменты и язык макропрограммирования VBA. Excel является одним из наиболее популярных приложений в мире.

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

1. Создание обработки загрузки и её формы

Тут мы особо ничего не будем придумывать, сделаем поле ввода для выбора файла на диске, кнопку «Прочитать» для чтения файла и заполнения табличной части.

2 Обработчик выбора файла

Тут всё сделаем как в загрузке из CSV:

При нажатии на выбор файла необходимо отображать диалог выбора файла в ОС. Сделать это очень просто. Необходимо на обработчик “НачалоВыбора” в поле ввода файла указать следующий код:

3 Обработка данных из Excel и загрузка в 1С 8.3

Для начала мы очищаем информацию в таблице, находим файл на диске, подключаемся к Excel через COM-объект и проводим все технические настройки:

Получите 267 видеоуроков по 1С бесплатно:

После того как мы получили все данные из файла, мы считываем 1 строку файла и генерируем колонки на форме с наименованиями из файла:

После формирования колонок считываем тело файла эксель и построчно заносим данные в табличное поле:

В результате мы получаем загруженные данные из excel c такими же колонками:

Не забудьте закрыть Эксель в 1С после выполнения процедур с помощью кода:

Универсальную загрузку из excel в 1C можно бесплатно скачать тут.

Обратите внимание, эта обработка написана в режиме «обычного приложения 1С».

Если у Вас всё же возникли проблемы с загрузкой, Вы можете обратиться за помощью к опытному программисту 1C.

Видеоурок по загрузке товаров в 1С из файлов Excel:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Обучение программированию на 1С

Использование COM-соединения, выгрузка в Excel через COM-объект Excel.Application

Вообще COM-объекты используют для соединения информационной базы 1С с файлом Word, Excel, Outlook или любой другой программой, поддерживающей данный интерфейс обмена данными. В этой статье рассмотрим задачу выгрузки/загрузки данных из/в MS Excel. Чтобы это осуществить воспользуемся COM-соединением и объектом Excel.Application. Для примера возьмём задачу выгрузки/загрузки данных о номенклатуре. Пример рассмотрим ниже.

COM-соединение

Что же такое COM-соединение? Component Object Model (или COM) – это технология (фирмы Microsoft) взаимодействующих компонентов, которые одновременно могут быть использованы в разных приложениях. При этом весь функционал соответствующего компонента наследуется внутрь разрабатываемого приложения. В нашем случае COM-объект Excel.Application используется внутри кода 1С для операций с файлом книги MS Excel.

Объект Excel.Application

У объекта Excel.Application существует ряд методов, которые нам могут пригодиться для реализации нижепоставленной задачи:

  • ОбъектExcel.WorkBooks.Open(ИмяФайла) – Открытие книги MS Excel
  • ОбъектExcel.ActiveWorkbook.Close() – Закрытие текущей книги
  • ОбъектExcel.Quit() – Закрытие COM-объекта
  • ОбъектExcel.Sheets(ИмяЛиста) – Получает лист книги
  • ЛистExcel.Cells(НачалоСтрока, НачалоСтолбец) – Ячейка таблицы на данном листе
  • ЛистExcel.Range(Ячейка1, Ячейка2) – Выделенная область
  • ЯчейкаExcel.Value – Значение ячейки таблицы
  • ЯчейкаExcel.Text – Текст ячейки таблицы

Постановка задачи

Итак, предположим, что в обработке 1С у нас имеется табличная часть, состоящая из следующих колонок:

Необходимо реализовать 2 функционала (сделать на форме 2 основные кнопки):

  1. Выгрузка табличной части в подготовленный файл MS Excel
  2. Загрузка табличной части из файла.

Алгоритм выгрузки/загрузки в MS Excel

Алгоритм выгрузки следующий:

  1. Выгружаем табличную часть в таблицу значений
  2. Создаём новый COM-объект Excel.Application
  3. Выбираем файл, открываем файл книги MS Excel
  4. Переходим на заданный лист книги
  5. Выгружаем данные в файл
  6. Закрываем книгу, выходим из COM-объекта.

Алгоритм загрузки следующий:

  1. Создаём новый COM-объект Excel.Application
  2. Выбираем файл, открываем файл книги MS Excel
  3. Переходим на заданный лист книги
  4. Загружаем данные из файла в таблицу значений
  5. Закрываем книгу, выходим из COM-объекта
  6. Таблицу значений выгружаем в табличную часть.

Операция выгрузки и загрузки данных о номенклатуре происходит в заранее подготовленный шаблон MS Excel.

Пример кода 1С

Код 1С я постарался разделить на отдельные функции, чтобы, скопировав, с ними можно было работать где угодно. На форме обработки 1С были созданы 3 кнопки:

В итоге в реализации алгоритма получились следующие основные процедуры и функции 1С:

  • ПолучитьExcel – Получает COM-объект MS Excel;
  • ЗакрытьExcel – Закрывает использование COM-объекта MS Excel;
  • ПолучитьЛистExcel – Получает лист книги Excel;
  • ДобавитьТабличныйДокументВExcel – Добавляет табличный документ на лист Excel (нужно для выгрузки данных);
  • ПрочитатьОбластьИзExcel – Читает область ячеек с листа Excel (нужно для загрузки данных);
  • ШиринаЛистаExcel – Ширина листа Excel;
  • ВысотаЛистаExcel – Высота листа Excel;
  • ПреобразоватьТДвТЗ – Преобразует табличный документ в таблицу значений;
  • ПреобразоватьТЗвТД – Преобразует таблицу значений в табличный документ;

Для начала приведу вспомогательную функцию для открытия/сохранения файла на диске:

Также в реализации алгоритма были задействованы следующие вспомогательные функции:

Читать еще:  Value в excel что означает
Ссылка на основную публикацию
Adblock
detector
Эксель = СоздатьОбъект( «Excel.Application» );

Получение доступа к приложению Excel.
0 — Excel не виден, 1 — виден.
Создание новой книги (файла) Excel.
Сохранение книги Excel.
Добавление нового листа в книгу.
Открытие существующей книги (файла) Excel.
Установка листа в качестве рабочего с номером НомерЛиста.
Задание рабочему листу имени ИмяЛиста
Задание параметра страницы «Масштаб» (от 10 до 400).
Ориентация: 1 — книжная, 2 — альбомная.
Задание левой границы (в сантиметрах).
Задание верхней границы (в сантиметрах).
Задание правой границы (в сантиметрах).
Задание нижней границы (в сантиметрах).
Задание ширины колонке.
Ввод данных в ячейку.
Установка шрифта в ячейке.
Установка размера шрифта в ячейке.
1 — жирный шрифт, 0 — нормальный.
1 — наклонный шрифт, 0 — нормальный.
2 — подчеркнутый, 1 — нет.
Установка формата данных ячейки.