Имя: Пароль:
1C
1С v8
Выгрузка данныз из 1С в уже существующий Ексель файл.
0 Solitar
 
19.02.12
20:01
Есть файл в формате Экселя, надо сделать поиск по этому файлу, и случае успешного поиска заполнить определенную ячейку. В файле может быть около 5к строк.
Ничего не могу найти как это лучше сделать.
1 DrShad
 
19.02.12
20:06
тебе прям сюда все кидать?
2 Vladal
 
19.02.12
20:06
(0) Найди темы по записи в Ексель. Было такое. Только не создавай новый файл, а используй запись в уже открытый.
3 Vladal
 
19.02.12
20:37
4 John83
 
20.02.12
14:48
Если Не ЗначениеЗаполнено(ФайлВыгрузки) Тогда
   ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   ДиалогОткрытияФайла.Фильтр = "Файлы Microsoft Excel (*.xls)|*.xls|Все файлы (*.*)|*.*";
   ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
   ДиалогОткрытияФайла.Заголовок = "Выбор файла для сохранения данных отчета";
   Если ДиалогОткрытияФайла.Выбрать() Тогда
       ФайлВыгрузки = ДиалогОткрытияФайла.ПолноеИмяФайла;
   КонецЕсли;    
   Если НЕ ЗначениеЗаполнено(ФайлВыгрузки) Тогда
       Сообщить("Необходимо выбрать файл для выгрузки данных.", СтатусСообщения.Важное);
       Возврат;
   КонецЕсли;
КонецЕсли;


ДокЭкс = ПолучитьCOMОбъект("", "Excel.Application");

Попытка        
   //ДокЭкс.SheetsInNewWorkbook = 1; //Один лист в новой книге
   ДокЭкс.DisplayAlerts = 0; //Не выводить предупреждения Excel
   //создадим список файлов которые нужно свалить в один
   ЭлементыФормы.ПолеТабличногоДокумента.Записать(КаталогВременныхФайлов()+"tmp.xls", ТипФайлаТабличногоДокумента.XLS);
   вр_файл = ДокЭкс.Workbooks.Open(КаталогВременныхФайлов()+"tmp.xls");

   Ссылка = вр_файл;
   ПутьКФайлу = КаталогВременныхФайлов()+"tmp.xls";

   Файл = ДокЭкс.Workbooks.Open(ФайлВыгрузки); //Создаем файл куда все пишем    

   Ссылка.Sheets(1).Copy(Файл.Sheets(Файл.Worksheets.Count));//копирем очередно файл на следующую закладку
   Файл.Sheets(Файл.Sheets.Count).Move(Файл.Sheets(Файл.Sheets.Count-1));//добавленный лист будет предпоследним, двигаем его в конец

   //меняем имена закладок
   Файл.Sheets(Файл.Worksheets.Count).Name = Формат(Дата, "ДФ=ddMM");

   //сохраняем результат
   Файл.SaveAs(ФайлВыгрузки,-4143);

   ДокЭкс.DisplayAlerts = 0;
   ДокЭкс.WorkBooks.Close();
   ДокЭкс.Quit();
   
   //удаляем все лишнее
   УдалитьФайлы(ПутьКФайлу);
   УдалитьФайлы(КаталогВременныхФайлов()+"result.xls");
   
Исключение
   ПоказатьИнформациюОбОшибке(ИнформацияОбОшибке());
   ДокЭкс.DisplayAlerts = 0;
   ДокЭкс.WorkBooks.Close();
   ДокЭкс.Quit();
   
   УдалитьФайлы(ПутьКФайлу);
КонецПопытки;
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.