|
Банальные мелочи при сохранении в Excel. Боян, но мож кому надо. | ☑ | ||
---|---|---|---|---|
0
Лодырь
06.11.12
✎
09:16
|
При составлении из 1С сложных многостраничных книг в Excel наткнулся на нижеприведенные проблемы, и тк решил их, выкладываю тут. Может кому пригодится )
Если админы посчитают ненужным - сносите смело. 1. "Кривая" расцветка. Цвета абсолютно не те какие закладывались изначально. Проблема возникает при сборке различных страниц Excel выгруженных из 1С в одну книгу. Тк сборка обычно происходит на основе существующей либо новой книги Excel то палитра книги отличается от палитры сохраняемых из 1С листов. Решение - стандартизировать палитру, подгоняя ее под палитру используемую 1С. Если сборка идет на основе некого шаблона, то надо предварительно на этапе его разработки скопировать туда палитру из "1Сного" листа Excel. Если сборка идет в пустой файл - то просто скопировать палитру (благо это очень просто). БольшойОтчет.Colors = СтраницаИз1С.Colors; 2. Стандартная сетка Excel зачастую раздражает и мешается. Лучше ее отключать. Например так. БольшойОтчет.Application.Activewindow.DisplayGridLines = 0; 3. По умолчанию желательно открывать некий определенный лист книги. Делаем: БольшойОтчет.WorkSheets(Х).Activate(); // где Х - номер листа 4. Вечно один из пользователей отчетов не имеет 2007 хотя бы Excel. Логично что приходится сохранять в xls а не xlsx. Это легко иделать из 1С, а вот используя хз какую версию Excel на компьютере пользователя (которую переодически меняют админы по своему усмотрению) сложнее (тк он для новых книг сам выбирает формат по умолчанию). Приходится анализировать версию: Если Число(Excel.version) < 12 Тогда // Excel это ComОбъект("Excel.application") FileFormatNum = -4143 // ага, загадочное число Иначе FileFormatNum = 56 // ну что мешало сделать форматы стандартными? КонецЕсли; БольшойОтчет.SaveAs(ИмяОтчета,FileFormatNum); Собственно все. Удачи. |
|||
1
Wobland
06.11.12
✎
09:19
|
мои пять копеек:
ПоследняяСтрока=Sheet.Cells.SpecialCells(11).Row; |
|||
2
Defender aka LINN
06.11.12
✎
09:22
|
(0) Есть подозрение, что "сложные многостраничные книги" нужны для того, чтобы пользователи там еще что-то шаманили, т.е. нужно тупо в 1С сделать отчеты, которые давали бы им сразу нудные данные. Правда, убедить в этом пользователей это уже задача нетривиальная.
|
|||
3
D_Pavel
06.11.12
✎
09:23
|
(0) Круть! Молодец
(1) Это все знают |
|||
4
Wobland
06.11.12
✎
09:24
|
(3) вчера только товарищ циклом строки перебирал, пока значения не кончались ;)
|
|||
5
D_Pavel
06.11.12
✎
09:27
|
(4) Погуглить что-ли не мог...
|
|||
6
mikecool
06.11.12
✎
09:28
|
о сколько нам открытий чудных готовит UsedRAnge дух...
|
|||
7
mikecool
06.11.12
✎
09:28
|
(4) иногда это лучше, поскольку внизу всякие подвалы могут быть
|
|||
8
Песец
06.11.12
✎
09:31
|
(1) Спешлселлз иногда какую-то хрень выдает :(
|
|||
9
Лодырь
06.11.12
✎
09:31
|
(7) кстати сам перебираю строчки циклом ) просто так надежнее и удобнее в ряде случаев.
|
|||
10
Serg_1960
06.11.12
✎
09:32
|
Автору мои +5 :)
PS: не портите карму ветки своими мелкими дрязгами - вносите свой вклад молча :)) |
|||
11
mikecool
06.11.12
✎
09:37
|
еще - оформлять выводимые данные(рамки, цвета и етс) надо после вывода данных перед сохранением книги - работает в десятки раз быстрее
|
|||
12
mikecool
06.11.12
✎
09:37
|
+11 я для этого писал в отдельную колонку признаки, по которым потом анализировал, что делать с данной ячейкой
|
|||
13
D_Pavel
06.11.12
✎
09:38
|
(10) Что ты внес этим своим сообщением?
|
|||
14
zulu_mix
06.11.12
✎
09:40
|
тоже кину 5 коп. правда на чтение данных.
Артикул = RecordSet.Fields(НомерКолонкиАртикул).value; //если читать так артикул 00956 то прочтется 956 Артикул = RecordSet.Fields(НомерКолонкиАртикул).text; //если читать так артикул 00956 то прочтется 00956 |
|||
15
Лодырь
06.11.12
✎
09:51
|
(11)(12) Интересно, надо попробовать.
|
|||
16
mikecool
06.11.12
✎
09:53
|
(15) попробуй ) при выводе порядка 250тыщ записей ускорение составило х50 где то
|
|||
17
vde69
06.11.12
✎
09:53
|
||||
18
Armando
06.11.12
✎
09:57
|
||||
19
Wobland
06.11.12
✎
10:00
|
если уж добавлять в базу знаний, то ветку тогда переименуйте. Древнерусский сказитель тут не к месту
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |