3.
SolarGard
121
19.02.13 11:17
Сейчас в теме
Функция ПолучитьТЗИзФайлаПФР()
тзФайл = новый ТаблицаЗначений;
//загрузим эксель файл в таблицу значений
Если ЗначениеЗаполнено(ИмяФайла) Тогда
Попытка
Эксель = Новый COMОбъект("Excel.Application");
Эксель.WorkBooks.Open(ИмяФайла);
Эксель.Worksheets(1).Activate();
Эксель.ActiveSheet.UsedRange.Select();
//Эксель.Visible = 1;
Исключение
Сообщить("Ошибка открытия файла: проверьте, установлен ли MS Excel");
возврат тзФайл
КонецПопытки;
//СписокИменКолонок = Новый СписокЗначений;
Попытка
лВыбраннаяОбласть = Эксель.Selection;
лВсегоСтрок = лВыбраннаяОбласть.Rows.Count;
лВсегоКолонок = мин(лВыбраннаяОбласть.Columns.Count,11);
лВсегоЯч = лВсегоСтрок * лВсегоКолонок;
Если лВсегоЯч < 2 Тогда
Сообщить("Ошибка разбора структуры файла:" + Символы.ПС + "Область не выделена!!!" + Символы.ПС + "Или активный документ пуст!!!");
Возврат тзФайл;
КонецЕсли;
Сообщить("ВсегоСтрок " + Строка(лВсегоСтрок));
Для лСчетчикКолонок = 1 По лВсегоКолонок Цикл
лТекущаяЯчейка = лВыбраннаяОбласть.Cells(1, лСчетчикКолонок);
ИмяКолонки = сокрлп(лТекущаяЯчейка.Value);
ИмяКолонки = СтрЗаменить(ИмяКолонки," ","_");
тзФайл.Колонки.Добавить(ИмяКолонки);
//СписокИменКолонок.Добавить(ИмяКолонки);
КонецЦикла;
//тзФайл.Колонки.Добавить("ФИО");
//СписокИменКолонок.Добавить("ФИО");
ЧисловыеКолонки = ",1,8,9,10,11,";
Для лСчетчикСтрок = 2 По лВсегоСтрок Цикл
НоваяСтрокаТЗ = тзФайл.Добавить();
Для лСчетчикКолонок = 1 По лВсегоКолонок Цикл
ТекЗначение = лВыбраннаяОбласть.Cells(лСчетчикСтрок, лСчетчикКолонок).Value;
Если найти(ЧисловыеКолонки,","+лСчетчикКолонок+",")<>0 тогда
Попытка
ТекЗначение = окр(число(ТекЗначение),2);
Исключение
Если сокрЛП(ТекЗначение)="" тогда
ТекЗначение = 0;
Иначе
Сообщить("В строке "+лСчетчикСтрок+", колонке "+лСчетчикКолонок+" должно быть число!");
КонецЕсли;
КонецПопытки;
Иначе
ТекЗначение = СтрЗаменить(ТекЗначение," ",""); //%%%%%%%%%%%%%%%%%%%
КонецЕсли;
//ИмяТекКолонки = лВыбраннаяОбласть.Cells(1, лСчетчикКолонок).Value;
НоваяСтрокаТЗ[лСчетчикКолонок-1] = ТекЗначение;
КонецЦикла;
//НоваяСтрокаТЗ.ФИО = ВРЕГ(НоваяСтрокаТЗ.Фамилия+" "+НоваяСтрокаТЗ.Имя+" "+НоваяСтрокаТЗ.Отчество);
КонецЦикла;
исключение
Сообщить(ОписаниеОшибки());
Эксель.Quit();
возврат тзФайл
КонецПопытки;
Если НЕ Эксель = Неопределено Тогда
//Эксель.Save();
Эксель.Quit();
КонецЕсли;
КонецЕсли;
возврат тзФайл
КонецФункции