Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 23:23

загрузка данных из excel в 8.2

Автор Sweety Bell, 24 ноя 2015, 12:44

0 Пользователей и 1 гость просматривают эту тему.

Sweety Bell

Здравствуйте! Мне надо загрузить данные из excel в 8.2 обычное приложение. В цикле вывода возникает ошибка в методе Добавить. Первые 2 итерации пропускает нормально, потом выдает ошибку:
НоваяКолонка=ЭлементыФормы.Таблица.Колонки.Добавить(ИмяБезПробелов,ИмяКолонки);
по причине:
Недопустимое значение параметра (параметр номер '1')


Процедура ОкрытьФайлНажатие(Элемент)
   ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   ДиалогВыбора.Заголовок ="Выберите файл";
   
Если ДиалогВыбора.Выбрать()Тогда
   ИмяФайла=ДиалогВыбора.ПолноеИмяФайла;
  КонецЕсли ;

   Таблица.Очистить();
Таблица.Колонки.Очистить();

Попытка
Excel=Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ИмяФайла);
Состояние("Обработка файла Excel");
ExcelЛист=Excel.Sheets(1);
Исключение
Сообщить("шибка при открытии файла");
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;


Версия =Лев(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 по Файлстрок Цикл
НоваяСтрока=Таблица.Добавить();
Для НомерКолонки=1 По Таблица.Колонки.Количество()Цикл
ТекущееЗначение=Excel.Cells(нс.НомерКолонки).Text;
  ИмяКолонки=Таблица.Колонких[НомерКолонки-1].Имя;
  НоваяСтрока[ИмяКолонки]=ТекущееЗначение;



  КонецЦикла;
   КонецЦикла;

КонецПроцедуры

vitasw

Смело запускайте отладчик. Он вам покажет название колонки.

Sweety Bell

показал колонку Наименование.
После этого на форме появляются 3 пустые колонки.
Помогите, пожалуйста, вывести на экран. Начальство убивает:fdbsdfbsd:

vitasw

Вы слово "отладчик" сознательно не видите?

Sweety Bell

Вижу. Он показывает на эту строку
НоваяКолонка=ЭлементыФормы.Таблица.Колонки.Добавить(ИмяКолонки);

Kironten

Цитата: Sweety Bell от 24 ноя 2015, 13:12
Вижу. Он показывает на эту строку
НоваяКолонка=ЭлементыФормы.Таблица.Колонки.Добавить(ИмяКолонки);
В приведенном вами коде нет такой строки. Есть такая:
НоваяКолонка=ЭлементыФормы.Таблица.Колонки.Добавить(ИмяБезПробелов,ИмяКолонки);

vitasw

Скажите, а что такое отладчик вы вообще знаете? Вывод строки с ошибкой и отладчик - это знаете ли, очень разные вещи.

Sweety Bell

Цитата: vitasw от 24 ноя 2015, 13:25
Скажите, а что такое отладчик вы вообще знаете? Вывод строки с ошибкой и отладчик - это знаете ли, очень разные вещи.
инструмент для пошаговой отладки. Я им и пользуюсь. Значение смотрю на табло
Добавлено: 24 ноя 2015, 13:47


Оно зависает на этом месте кода

ИмяКолонки=Excel.Cells(1,Счетчик).Text;

           
       

vitasw

ИмяКолонки=СокрЛП(Excel.Cells(1,Счетчик).Value);

Sweety Bell

исправила. Теперь другая ошибка: Ошибка при вызове метода контекста (Cells)
      Пока ЗначениеЗаполнено(Excel.Cells(1,Счетчик).Value)Цикл
по причине:
Произошла исключительная ситуация (0x800a03ec)

Теги: excel таблица 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск