|
HELP: выгрузка в Эксель | ☑ | ||
---|---|---|---|---|
0
листопад
04.05.14
✎
01:13
|
Почему при выгрузке в Эксель, файл содержит только одну строчку? И то:
ИНН в ней отображается как 7,02281E+11, а в Коде съедает первые нули? Вот код: Процедура КнопкаВыполнитьНажатие(Кнопка) НаимГруппы = "Агенты"; ГруппаФЛ = Справочники.ФизическиеЛица.НайтиПоНаименованию(НаимГруппы); Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ФизическиеЛица.Код, | ФизическиеЛица.Наименование, | ФизическиеЛица.Родитель, | ФизическиеЛица.ПометкаУдаления, | ФизическиеЛица.ИНН |ИЗ | Справочник.ФизическиеЛица КАК ФизическиеЛица |ГДЕ | ФизическиеЛица.Родитель = &Группа | И ФизическиеЛица.ПометкаУдаления = ЛОЖЬ" ; Запрос.УстановитьПараметр("Группа", ГруппаФЛ); Результат = Запрос.Выполнить().Выгрузить(); Для Каждого Строка ИЗ Результат Цикл // ********************************* // Подключаемся к Excel Подключено = Ложь; Попытка ExcelПриложение = Новый COMОбъект("Excel.Application"); Подключено = Истина; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Книга = ExcelПриложение.WorkBooks.Add(); Лист = Книга.WorkSheets(1); Лист.Cells(1, 1).Value = Строка.Код; Лист.Cells(1, 2).Value = Строка.Наименование; Лист.Cells(1, 3).Value = Строка.ИНН; КонецЦикла; ФайлНаДиске = Новый Файл("C:\Файл.xlsx"); Попытка ExcelПриложение.DisplayAlerts = False; Книга.SaveAs(ФайлНаДиске.ПолноеИмя); ExcelПриложение.ActiveWorkbook.Close(); ExcelПриложение.Quit(); Сообщить("Файл выгружен успешно: " + ФайлНаДиске.ПолноеИмя); Исключение Сообщить("Ошибка записи данных файла: " + ФайлНаДиске.ПолноеИмя); Сообщить(ОписаниеОшибки()); Попытка ExcelПриложение.Quit(); Исключение КонецПопытки; КонецПопытки; //********************************** КонецПроцедуры |
|||
1
шаэс
04.05.14
✎
01:28
|
Вы работу с приложением откуда–то взяли? В цикле создаете каждый раз книгу, каждый раз одним и тем же ячейкам присваиваете значения, чего тогда хотите много строк?
|
|||
2
листопад
04.05.14
✎
01:32
|
(1) Да, скопировала пример. Обычно я загрузку в Эксель делаю. А тут выгрузка... Так что мне поправить?
|
|||
3
листопад
04.05.14
✎
01:33
|
Все разобралась. Спасибо!
|
|||
4
листопад
04.05.14
✎
01:36
|
Только что делать с обрезанными нулями и ИНН???
|
|||
5
шаэс
04.05.14
✎
01:40
|
(4) ну как–нибудь формат к строке привести. А то ж как число воспринимает
|
|||
6
листопад
04.05.14
✎
01:44
|
Проблемы с ИНН и обрезанными нулями в Коде - актуальны. Вот мой итоговый код:
Процедура КнопкаВыполнитьНажатие(Кнопка) НаимГруппы = "Агенты"; ГруппаФЛ = Справочники.ФизическиеЛица.НайтиПоНаименованию(НаимГруппы); Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | ФизическиеЛица.Код, | ФизическиеЛица.Наименование, | ФизическиеЛица.Родитель, | ФизическиеЛица.ПометкаУдаления, | ФизическиеЛица.ИНН |ИЗ | Справочник.ФизическиеЛица КАК ФизическиеЛица |ГДЕ | ФизическиеЛица.Родитель = &Группа | И ФизическиеЛица.ПометкаУдаления = ЛОЖЬ" ; Запрос.УстановитьПараметр("Группа", ГруппаФЛ); Результат = Запрос.Выполнить().Выгрузить(); // Подключаемся к Excel Подключено = Ложь; Попытка ExcelПриложение = Новый COMОбъект("Excel.Application"); Подключено = Истина; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Книга = ExcelПриложение.WorkBooks.Add(); Лист = Книга.WorkSheets(1); НС=1; Для Каждого Строка ИЗ Результат Цикл Лист.Cells(НС, 1).Value = Строка.Код; Лист.Cells(НС, 2).Value = Строка.Наименование; Лист.Cells(НС, 3).Value = Строка.ИНН; НС=НС+1; КонецЦикла; ФайлНаДиске = Новый Файл("C:\Файл.xls"); Попытка ExcelПриложение.DisplayAlerts = False; Книга.SaveAs(ФайлНаДиске.ПолноеИмя); ExcelПриложение.ActiveWorkbook.Close(); ExcelПриложение.Quit(); Сообщить("Файл выгружен успешно: " + ФайлНаДиске.ПолноеИмя); Исключение Сообщить("Ошибка записи данных файла: " + ФайлНаДиске.ПолноеИмя); Сообщить(ОписаниеОшибки()); Попытка ExcelПриложение.Quit(); Исключение КонецПопытки; КонецПопытки; КонецПроцедуры |
|||
7
шаэс
04.05.14
✎
01:55
|
(6) ну, не знаю. Прочтите это, может поможет
http://infostart.ru/public/269722/ |
|||
8
листопад
04.05.14
✎
01:59
|
Проблему решила, установила текстовый формат:
НС=1; Для Каждого Строка ИЗ Результат Цикл Лист.Cells(НС, 1).NumberFormat = "@"; Лист.Cells(НС, 2).NumberFormat = "@"; Лист.Cells(НС, 3).NumberFormat = "@"; Лист.Cells(НС, 1).Value = Строка.Код; Лист.Cells(НС, 2).Value = Строка.Наименование; Лист.Cells(НС, 3).Value = Строка.ИНН; НС=НС+1; КонецЦикла; |
|||
9
шаэс
04.05.14
✎
02:01
|
(8) а вот гораздо же быстрее и лучше получается, когда никто не подсказывает, правда же?
|
|||
10
листопад
04.05.14
✎
02:02
|
Теперь увидела другую проблему: при открытии Эксель-файла, вместе с ним почему-то всегда открывается файл под названием Книга2(3,4,5,6 и т.д., при каждом открытии число увеличивается). Что это?
|
|||
11
skunk
04.05.14
✎
06:14
|
неудачно закрытые книги ... например при отладке остановка до ExcelПриложение.Quit();
|
|||
12
Web00001
04.05.14
✎
06:44
|
Вывести в табличный документ с каким угодно форматированием, быстро и просто. После этого сохранить в эксель и не е..ть мозг себе и людям не?
|
|||
13
шаэс
04.05.14
✎
09:24
|
(12) а Вы так же делаете, когда получаете заказ на выгрузку, например, в банк в формате эксель? Просите бухгалтера сформировать табличку и сохранить ее?
|
|||
14
m-serg74
04.05.14
✎
09:44
|
(13) что мешает программно?
|
|||
15
Web00001
04.05.14
✎
09:45
|
(13)В чем проблема я не догнал? И причем здесь бухгалтер?
Нарисовал нужный макет. Вывел туда данные. Только не показывай на экран получившийся табличный документ а записывай его как эксель. Получится аккуратно и красиво. Уж гораздо лучше чем ты самостоятельно будешь писать отдельно в каждую ячейку. И проще. Непонятно какой смысл ерундой заниматься. |
|||
16
m-serg74
04.05.14
✎
09:46
|
(15) не шарит :)
|
|||
17
шаэс
04.05.14
✎
10:03
|
(15) ну вот и спасибо.
(16) ага, не шарю |
|||
18
Torquader
04.05.14
✎
19:24
|
(10) Чудо! Когда Excel открывается - он создаёт книгу по умолчанию - нужно не забывать его закрыть.
|
|||
19
Torquader
04.05.14
✎
19:25
|
Если выводить в Excel всё, как строки, то будут правильные строки.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |