программно(обработкой) из 1С проверить ячейки таблицы Excel на заполненные значения (например > 0)
Всем привет!
Есть Excel документ, с несколькими листами.
Вопросы:
1) Как загрузить в таблицу значений конкретный (указанный в реквизите пользователем) лист? Интересует только код где надо выбрать лист в зависимости от значение переменной (название листа) и загрузить его в таблицу значения
2) Есть колонка "Сумма" в таблице Excel, где есть пустые ячейки и заполненные цифрами. Нужно перенести всю строку в таблицу значения если в колонке "Сумма" есть цифры > 0. Какой код для этого поиска?
Есть Excel документ, с несколькими листами.
Вопросы:
1) Как загрузить в таблицу значений конкретный (указанный в реквизите пользователем) лист? Интересует только код где надо выбрать лист в зависимости от значение переменной (название листа) и загрузить его в таблицу значения
2) Есть колонка "Сумма" в таблице Excel, где есть пустые ячейки и заполненные цифрами. Нужно перенести всю строку в таблицу значения если в колонке "Сумма" есть цифры > 0. Какой код для этого поиска?
По теме из базы знаний
- Заметочки про 1С:Предприятие 8 (редакция 22.06.2012)
- 1С8:борьба - личный опыт работы с платформой 1с8
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Как автоматически заполнить обработкой табличную часть документа "Ввод начальных остатков" (Тип операции = "Расчеты с партнерами"). 1С: ERP
- Универсальная загрузка данных формата Excel
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) выбор листа в Экселе:
Описываете Таблицу значений, перебираете в цикле ячейки и заполняете свою Таблицу значений.
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ИмяВремФайла);
Книга = Excel.WorkBooks(1);
Лист = Книга.WorkSheets(НомерЛиста);
Описываете Таблицу значений, перебираете в цикле ячейки и заполняете свою Таблицу значений.
(3)
Не прокатило, не могу победить ошибку
Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ИмяВремФайла);
Книга = Excel.WorkBooks(1);
Лист = Книга.WorkSheets(НомерЛиста);
Excel.WorkBooks.Open(ИмяВремФайла);
Книга = Excel.WorkBooks(1);
Лист = Книга.WorkSheets(НомерЛиста);
Не прокатило, не могу победить ошибку
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(37)}: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Invalid class string
(3)
&НаКлиенте
Процедура Команда1(Команда)
ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбора.Заголовок = "Выберите файл";
Если ДиалогВыбора.Выбрать() Тогда
ПутьКEXCEL = ДиалогВыбора.ПолноеИмяФайла;
нФайл = Новый Файл(ПутьКEXCEL);
ФайлEXCEL = нФайл.ПолноеИмя;
ДвоичДанные = Новый ДвоичныеДанные(ПутьКEXCEL);
//КомандаВыбратьФайлНаСервере(ДвоичныеДанные,Файл.Расширение);
КонецЕсли;
//нФайл = Новый Файл(ИмяФайла);
Если НЕ нФайл.Существует() Тогда
Возврат;
КонецЕсли;
//ДвоичДанные = Новый ДвоичныеДанные(ПутьКEXCEL);
ОбработкаОЛЕНаСервере(ДвоичДанные, нФайл.Расширение);
КонецПроцедуры
&НаСервере
Процедура ОбработкаОЛЕНаСервере(ДвоичДанные, Расширение)
ФайлЭксельНаСервере = ПолучитьИмяВременногоФайла(Расширение);
ДвоичДанные.Записать(ФайлЭксельНаСервере);
Попытка
Эксель = Новый COMОбъект("Excel.Application");// !!!!!!!!!!!!!!!!!!!!!!!!зззззззззззззздесть падает
Эксель.WorkBooks.Open(ФайлЭксельНаСервере);
Книга = Эксель.WorkBooks(1);
// ИмяЛиста = Книга.Sheets(НомерЛиста).Name;
Лист = Книга.WorkSheets(1);
//Эксель.DisplayAlerts = 0;
//Эксель.Visible = 0;
Исключение
Сообщить(ОписаниеОшибки());
Return;
КонецПопытки;
//
// Работаем с данными Excel
//
Эксель.Workbooks.Close();
Эксель.Application.Quit();
КонецПроцедуры
Показать
(5) нужно comcntr.dll зарегистрировать.
Вот ссылка например:https://infostart.ru/1c/articles/1108259/
Вот ссылка например:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот