|
Как загрузить все листы из экселя в 1С | ☑ | ||
---|---|---|---|---|
0
lirt82
26.05.17
✎
09:29
|
код обработки по загрузке ниже.
в файле несколько листов, как загрузить все? Процедура ПрочитатьНажатие(Элемент) //очищаем таблицу и удаляем колонки Таблица.Очистить(); Таблица.Колонки.Очистить(); ЭлементыФормы.Таблица.Колонки.Очистить(); //подключаемся к эксел Попытка Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(ИмяФайла); Состояние("Обработка файла Microsoft Excel..."); Исключение Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!"); Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Попытка //Открываем необходимый лист Excel.Sheets(1).Select(); // лист 1, по умолчанию Исключение Excel.ActiveWorkbook.Close(); Excel.Quit(); Excel = Неопределено; //Excel = 0; Сообщить("Файл "+Строка(ИмяФайла)+" не соответствует необходимому формату! Первый лист не найден!"); ОтменитьТранзакцию(); Возврат; КонецПопытки; //Получим количество строк и колонок. //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1); Если Версия = "8" тогда ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count; ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13); Иначе ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row; ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column; Конецесли; //считываем первую строку и генерируем колонки Сч = 1; Пока ЗначениеЗаполнено(Excel.Cells(1, Сч).Text) Цикл ИмяКолонки = Excel.Cells(1, Сч).Text; ИмяБезПробелов = СтрЗаменить(ИмяКолонки," ",""); // убираем из имени колонок пробелы Таблица.Колонки.Добавить(ИмяБезПробелов,,ИмяКолонки); НоваяКолонка = ЭлементыФормы.Таблица.Колонки.Добавить(ИмяБезПробелов, ИмяКолонки); НоваяКолонка.Данные = ИмяБезПробелов; Сч = Сч + 1; КонецЦикла; Для НС = 2 по ФайлСтрок Цикл // НС указываем с какой строки начинать обработку Состояние("Файл "+Строка(ИмяФайла)+": Обрабатываем файл "+Строка(Формат(?(ФайлСтрок=0,0,((100*НС)/ФайлСтрок)),"ЧЦ=3; ЧДЦ=0"))+" %"); ОбработкаПрерыванияПользователя(); //указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break НоваяСтрока = Таблица.Добавить(); Для НомерКолонки = 1 по Таблица.Колонки.Количество() Цикл //заполняем строку значениями ТекущееЗначение = Excel.Cells(НС, НомерКолонки).Text; ИмяКолонки = Таблица.Колонки[НомерКолонки-1].Имя; НоваяСтрока[ИмяКолонки] = ТекущееЗначение; КонецЦикла; КонецЦикла; //Закрываем Excel Excel.Quit(); Excel = Неопределено; |
|||
1
cw014
26.05.17
✎
09:31
|
Попытка
//Открываем необходимый лист Excel.Sheets(1).Select(); // лист 1, по умолчанию Исключение У тебя же все есть |
|||
2
cw014
26.05.17
✎
09:32
|
Или тебе рассказать, как работают циклы, и как пользоваться MSDN?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |