Загрузка определенных колонок из Excel

1. KonecEsli 1 13.05.21 09:15 Сейчас в теме
Приветствую коллеги....

Подскажите, каким образом загрузить в табличную часть определенные колонки из excel ? Например 2-ю и 24-ю колонку ? Чета у меня скиллухи не хватает )))
По теме из базы знаний
Найденные решения
5. belousows 3 13.05.21 09:59 Сейчас в теме
Примерно так


Для НомерСтроки = 1 По КолСтроки Цикл 
		
		НоваяСтрока = ТЗЕкселяСШапкой.Добавить();
		
		Попытка
			
			НоваяСтрока.Колонка0 = НомерСтроки;
			
			Для ш = 1 по КолКолонок Цикл 
				
				/////// только нужные колонки
				Если ш = 2 ИЛИ ш = 10 Тогда	
					ИмяКолонки = "Колонка" + ш;
					Выполнить("НоваяСтрока." + ИмяКолонки + " = Лист.Cells(НомерСтроки, " + ш + ").Value");
				Иначе
					....
				КонецЕсли;
				///////
			КонецЦикла;	
			
		Исключение
			Сообщить("Строка №"+Формат(НомерСтроки,"ЧГ=0")+" не обработана.");
		КонецПопытки;
		
	КонецЦикла;
Показать
KonecEsli; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. FatPanzer 13.05.21 09:34 Сейчас в теме
загрузить в ТабДанных определенные колонки
В 1С нет такого типа объекта "ТабДанных"
3. KonecEsli 1 13.05.21 09:41 Сейчас в теме
(2) Извиняюсь. Поправился )
4. FatPanzer 13.05.21 09:43 Сейчас в теме
Точно так же, как загружаете и "не определенные". Разницы никакой. Если читаете файл построчно, то там есть возможность указать номер колонки. Никаких проблем.
Fox-trot; +1 Ответить
5. belousows 3 13.05.21 09:59 Сейчас в теме
Примерно так


Для НомерСтроки = 1 По КолСтроки Цикл 
		
		НоваяСтрока = ТЗЕкселяСШапкой.Добавить();
		
		Попытка
			
			НоваяСтрока.Колонка0 = НомерСтроки;
			
			Для ш = 1 по КолКолонок Цикл 
				
				/////// только нужные колонки
				Если ш = 2 ИЛИ ш = 10 Тогда	
					ИмяКолонки = "Колонка" + ш;
					Выполнить("НоваяСтрока." + ИмяКолонки + " = Лист.Cells(НомерСтроки, " + ш + ").Value");
				Иначе
					....
				КонецЕсли;
				///////
			КонецЦикла;	
			
		Исключение
			Сообщить("Строка №"+Формат(НомерСтроки,"ЧГ=0")+" не обработана.");
		КонецПопытки;
		
	КонецЦикла;
Показать
KonecEsli; +1 Ответить
6. KonecEsli 1 13.05.21 10:01 Сейчас в теме
(5)
/////// только нужные колонки
Если ш = 2 ИЛИ ш = 10 Тогда
ИмяКолонки = "Колонка" + ш;
Выполнить("НоваяСтрока." + ИмяКолонки + " = Лист.Cells(НомерСтроки, " + ш + ").Value");
Иначе


Во, то что нужно ))) Спасибо большое !
7. FatPanzer 13.05.21 10:05 Сейчас в теме
(5) И зачем тут цикл по всем колонкам, если вы заранее знаете их конкретные номера?
8. FatPanzer 13.05.21 10:06 Сейчас в теме
(5)
Выполнить("НоваяСтрока." + ИмяКолонки + " = Лист.Cells(НомерСтроки, " + ш + ").Value");

Что за фигня? Что мешает написать
НоваяСтрока[ИмяКолонки] = ...
9. soft_wind 13.05.21 11:06 Сейчас в теме
самый тормозной способ загрузки, читать из ячейки:
---Выполнить("НоваяСтрока." + ИмяКолонки + " = Лист.Cells(НомерСтроки, " + ш + ").Value");

и еще а почему номера колонок? вообще смотрят на Наименования/Заголовок колонок. Что у вас загрузится если изменится порядок колонок?

используйте встроенные механизмы 1С
1.читайте данные ТабличныйДокумент.Прочитать("ВашФайлЕксел.xls");
2.с пом. ПостроительЗапроса из ТабличныйДокумент получаете ТаблицуЗначений

а уже дальше с ТЗ можно делать все что угодно
10. belousows 3 13.05.21 12:20 Сейчас в теме
(9)
самый тормозной способ загрузки, читать из ячейки:
---Выполнить("НоваяСтрока." + ИмяКолонки + " = Лист.Cells(НомерСтроки, " + ш + ").Value");


Это всего лишь пример для понимания человеку задавшему вопрос.......................,
11. starik-2005 3039 13.05.21 15:16 Сейчас в теме
Вопрос возникает раз в неделю. Или народ не умеет пользоваться поиском (что вряд ли), или поиск на инфостарте - полное г-но (это, кстати, правда). Поэтому автору я бы в гугл обратиться предложил, ибо ответ, выделенный желтеньким - так себе ответ.
Оставьте свое сообщение

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