Помогите с проблемой:
Не могу корректно сделать сохранение в эксель на нескольких листах.
гТаблица.Записать (ИмяВременногоФайла);
Документ = СоздатьОбъект ("ТабличныйДокумент");
Документ.Открыть (ИмяВременногоФайла);
КоличествоСтрок=Документ.ВысотаТаблицы();
НачСтрока=1;
КонСтрока=65536;
Если КонСтрока>КоличествоСтрок Тогда
КонСтрока=КоличествоСтрок;
КонецЕсли;
Конвертер = СоздатьОбъект ("КонвертерExcel");
Книга = Конвертер.Создать();
Книга.Листы.Очистить();
Для НомерЛиста=1 По Окр(КоличествоСтрок/КонСтрока+1,0,0) Цикл
ИмяЛиста="Лист "+СокрЛП(Строка(НомерЛиста));
Документ.УдалитьСтрок(КонСтрока+1,КоличествоСтрок-КонСтрока);
Книга.Листы.Добавить (ИмяЛиста,Документ);
Книга.ПараметрыКонвертера.РаспознаватьЧисловыеЗначения = 1;
Если КонСтрока<КоличествоСтрок Тогда
Документ.Очистить();
Документ.Открыть(ИмяВременногоФайла);
Документ.УдалитьСтроки(1,КонСтрока);
КонецЕсли;
КонецЦикла;
Книга.Записать (ВыбИмяФайла);
И в итоге,если строк в отчете больше 65536, то получаю на каждом листе одно и тоже.Как выйти из этой ситуации?? Спасибо
ТАк пытаюсь резать,но ничего не получается.. на листах одно и тоже..
немного подправил свой текст
НомерЛиста=1;
//Для НомерЛиста=1 По Окр(КоличествоСтрок/КонСтрока+1,0,0) Цикл
//ИмяЛиста="Лист "+СокрЛП(Строка(НомерЛиста));
Документ.УдалитьСтрок(КонСтрока+1,КоличествоСтрок-КонСтрока);
Книга.Листы.Добавить ("Лист 1",Документ);
Книга.ПараметрыКонвертера.РаспознаватьЧисловыеЗначения = 1;
Если КонСтрока<КоличествоСтрок Тогда
//Документ.Очистить();
Документ2.Открыть(ИмяВременногоФайла);
Документ2.УдалитьСтроки(1,КонСтрока);
Книга.Листы.Добавить("Лист 2",Документ2);
КонецЕсли;
//КонецЦикла;
Книга.Записать (ВыбИмяФайла);
Получается отлично, но только для двух листов, точнее для 65536*2 строк
Ошибка была в том что обращался к одному и тому же документу.. А запись документа происходит в момент записи книги..
А вот как сделать в цикле создание документа каждый раз нового незнаю....
8.
Ужас бухгалтера
22103.12.08 06:51 Сейчас в теме
Ну что же ты. Полшага осталось до решения проблемы и не дожал :) Вот, выложил подправленный вариант mxl2xls с возможностью разбивки на несколько листов: http://yoksel.net.ru/GotovyeReshenija/1S/MXL2XLS
Мне, правда, не слишком нравится идея разбивать таким образом (при помощи кучи промежуточных загрузок и метода "УдалитьСтроки"). Вот и скорость не слишком высокая получилась: 180 тыс. строк сохраняется на 3 листа аж за 32 с. Должно быть, думаю, раза в 2-3 быстрее.