|
v7: Выгрузка Таблицы Значений в Excel | ☑ | ||
---|---|---|---|---|
0
1CForEver
21.12.11
✎
16:52
|
Выкладываю описание как работать с выгрузкой в Excel, с коментариями что к чему, может кому и пригодится
Функция ЧтениеТаблицы(ТабЗнач) Перем Excel; Excel = СоздатьОбъект("Excel.Application"); //Создаем объект Excel Excel.Visible = 1; //Определяем видимость документа 1-видимы; 0-Невидимый WB = Excel.Workbooks.Add(); //Добавляем книгу Sh = WB.ActiveSheet(); //Определяем активный лист Sh.Visible = 1; //Видимость листа 1-видимы; 0-Невидимый //Создаем на листе Excel колонки наченая с первой строки i=1 Для i=1 По ТабЗнач.КоличествоКолонок() Цикл Sh.Cells(1, i).Value = ТабЗнач.ПолучитьПараметрыКолонки(i); КонецЦикла; Row = 2; //Номер строки на листе Excel ТабЗнач.ВыбратьСтроки(); Пока ТабЗнач.ПолучитьСтроку()=1 Цикл //Выводим строку состояние для строк кртных 10 Если (ТабЗнач.НомерСтроки%10)=0 Тогда Состояние("Обработано "+ТабЗнач.НомерСтроки+"/"+ТабЗнач.КоличествоСтрок()); КонецЕсли; //Заполняем столбцы на листе Excel для строки номер Row Для i=1 По ТабЗнач.КоличествоКолонок() Цикл Значение = ТабЗнач.ПолучитьЗначение(Row-1, i); //Переводим значение, не являющееся Числом,Строкой, Датой и Неопределенным, в тип Строка Если ТипЗначения(Значение)>3 Тогда Значение = Строка(Значение); КонецЕсли; //Установка формата данных ячейки на листе Excel Если ТипЗначения(Значение)=2 Тогда Sh.Cells(Row, i).NumberFormat = "@"; КонецЕсли; //Устанавливаем текущее Значение в в ячейку листа Excel Sh.Cells(Row, i).Value = Значение; КонецЦикла; Row = Row + 1; КонецЦикла; Sh.Cells(1,1).AutoFilter(); //Устанавливаем фильтр Sh.Cells(2,1).Select(); //Выбор области для закрепления Excel.ActiveWindow.FreezePanes = 1; //Закрепляем область Sh = ""; //Обнуляем лист Excel = ""; //Обнуляем объект Excel Возврат WB; //Возвращаем книгу Excel КонецФункции |
|||
1
Deon
21.12.11
✎
16:55
|
Спасибо )
|
|||
2
ДенисЧ
21.12.11
✎
16:56
|
(0) Твой скромный гений дарит нам это запростотак? О_о
Невиданная щедрость... |
|||
3
1CForEver
21.12.11
✎
16:57
|
БезВоздМездНо )))
|
|||
4
filh
21.12.11
✎
17:00
|
(0) Сразу видно, что скоро НГ!
Подарки пошли! |
|||
5
Любопытная
21.12.11
✎
17:02
|
(0) С моей стороны это конечно же покажется хамством, но слово "начИная" пишется через И
|
|||
6
1CForEver
21.12.11
✎
17:04
|
Ну я не проверял орфографию ))) У меня в школе по русскому 3 с минусом было, зато IQ 146 )))))))
|
|||
7
andrewks
21.12.11
✎
17:04
|
||||
8
1CForEver
21.12.11
✎
17:07
|
(7) Ты это к чему? Там есть более подробное описание?
|
|||
9
Ёпрст
21.12.11
✎
17:26
|
(0) спецом для автора, дарю настоящий шедевр:
http://infostart.ru/public/20190/ ЗЫ: скачивается всеми, там доступ ВСЕ стоит. |
|||
10
miki
21.12.11
✎
17:28
|
(9)не для всех:
>>Для скачивания файла необходимо зарегистрироваться или авторизоваться. |
|||
11
Ёпрст
21.12.11
✎
17:40
|
(10) да, эту ж..пу я не учел :(
|
|||
12
miki
21.12.11
✎
17:42
|
(11)сделал бы давно собственное файлохранилище... заодно бы на банерах (возможно) что-нить поимел...
|
|||
13
andrewks
21.12.11
✎
17:43
|
(11) учти ещё, что, даже после регистрации, нужно будет заработать баллы, чтобы скачать
|
|||
14
Ёпрст
21.12.11
✎
17:50
|
(13) вот тут ты ошибаешься.
Старые поделки с Доступом все могут скачать все без балов и прочей шняги, а вот на новые доступ прикрыли "балами" и прочей шнягой. |
|||
15
Ёпрст
21.12.11
✎
17:50
|
(12) надо подумать и слепить свою файлопомойку с блэкджеком и шлюхами :)
|
|||
16
miki
21.12.11
✎
17:51
|
(15)да уж, будь любезен, сделай себе такой подарок на НГ :))
|
|||
17
andrewks
21.12.11
✎
20:09
|
(14) это проверенная инфа? у меня снимали за старые обработки, правда, я не придавал значение реквизиту Доступ=Все. надо будет проверить
|
|||
18
2S
21.12.11
✎
20:18
|
(0)буэ, а ты поиграйся с форматированием, посчетом итогов, защитой и т.д., потом поговорим...
|
|||
19
МастерВопросов
21.12.11
✎
21:03
|
выложите тогда уж скрипт и для ОпенОфис что ли...
|
|||
20
andrewks
21.12.11
✎
21:04
|
||||
21
Nagaru
21.12.11
✎
21:18
|
А почему бы не средствами 1с?
Создать табличный документ и сохранить в файл формата excel? |
|||
22
Ёпрст
21.12.11
✎
21:19
|
(21) возможностей больше.
|
|||
23
Nagaru
21.12.11
✎
21:25
|
(22) Ну в (0) ничего того, что нельзя было бы сделать через Табличный документ, я не увидел, а вот у меня на работе например на некоторых компах стоит MS Office, на некоторых Open Office, так что вариант не самый интересный.
Вобщем настаиваю на том, что без создания лишних объектов можно обойтись в большинстве случаев. |
|||
24
Ёпрст
21.12.11
✎
21:26
|
(23) ну почему же, закрепление области, автофильтр.
Штатно, ты этого не сделаешь из табличного документа. |
|||
25
trad
21.12.11
✎
22:52
|
моя делать так. упрощенно. без комментариев.
ЗагрузитьВнешнююКомпоненту("OleExSup.dll"); OLEExSup = СоздатьОбъект("OLEExSup"); Excel=СоздатьОбъект("excel.application"); Книга=Excel.Workbooks.Add("Шаблон.xlt"); ТЗ=ПолучитьВыборку(); ВсегоКолонокДанных=ТЗ.КоличествоКолонок(); ВсегоСтрокДанных=ТЗ.КоличествоСтрок(); ЛевоВерх=Excel.Cells(1,1); ПравоНиз=Excel.Cells(ВсегоСтрокДанных,ВсегоКолонокДанных); Диапазон=Excel.Range(ЛевоВерх, ПравоНиз); Массив=СоздатьОбъект("OleSafeArray"); Массив.Создать(Массив.ТипыЗначений.VT_VARIANT,ВсегоСтрокДанных,ВсегоКолонокДанных); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл Для ТекКол=1 По ВсегоКолонокДанных Цикл Значение=ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки,ТекКол); Массив.УстановитьЗначение(ТЗ.НомерСтроки-1,ТекКол-1,Значение); КонецЦикла; КонецЦикла; гOLEExSup.УстановитьСвойство(Диапазон,"Value",Массив); Excel.Visible=-1; |
|||
26
1CForEver
26.12.11
✎
13:08
|
Ух, не ожидал, что шаблон кода может такую дискуссию вызвать )
|
|||
27
romix
26.12.11
✎
13:10
|
(26) Можно сюда их еще складывать, чтобы не потерялись
http://www.kb.mista.ru/ |
|||
28
Mikeware
26.12.11
✎
13:17
|
от же ж млин...
очередной сумрачный ген(итал)ий.... |
|||
29
1CForEver
26.12.11
✎
13:32
|
(27) Положил, теперь туда буду всегда складывать, что бы народ не возмущать )
|
|||
30
1CForEver
26.12.11
✎
13:45
|
(9) Спасибо, плюснул твой шедевр )
|
|||
31
DrHiHi
26.12.11
✎
13:51
|
а зачем оно?? можно ведь табличный документ сразу сохранить в excel файле...
|
|||
32
1CForEver
26.12.11
✎
14:15
|
(31) Ну вот как ты в таб. док сохранишь с 5-6 разными листами? Просто видимо не встречался еще с такими заданиями, когда требуют отчет в виде книге exce
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |