![]() |
|
v7: Объединение ячеек в таблице при выгрузке в Excel | ☑ | ||
---|---|---|---|---|
0
AL CAPONE
25.07.11
✎
17:16
|
Программно создаётся некая таблица с данными
Таб.Записать(Путь,"XLS"); В конфигураторе в той таблице объединены ячейки "A1:C1". Но когда смотрим выгруженный xls-файл, то искомые ячейки там разъединены. Вроде бы не беда, можно объединить программно. Далее Excel = СоздатьОбъект("Excel.Application"); Excel.Workbooks.Open(Путь); Excel.Visible = 0; Doc = Excel.ActiveWorkbook.worksheets(1); Doc.Range("A1:C1").Select(); Excel.Selection.Merge(); Не палит, хоть убейся, уже перерыл кучу инфы, результата 0. Только при открытии файла ячейки "A1:C1" активированы, но не объединены. Помогите, такая мелочь, а уже крыша едет. |
|||
1
AL CAPONE
25.07.11
✎
17:47
|
heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeelp
|
|||
2
Мимохожий Однако
25.07.11
✎
17:52
|
Создай шаблон в Excel заранее и заполняй.
|
|||
3
Voronve
25.07.11
✎
17:54
|
Doc.Range(Cells(1,1), Cells(1,3).Merge();
так что будет ? у тебя комана савэ или савэас далее в коде присутствует ? |
|||
4
AL CAPONE
25.07.11
✎
17:59
|
(3)
Функция не обнаружена (Cells) Сохранение ест-но есть. |
|||
5
Voronve
25.07.11
✎
18:01
|
(4) Тогда низнаю.
|
|||
6
Азазель
25.07.11
✎
18:16
|
Сохраняй компонентой SpreadSheet.dll
Там все фичи переносятся корректно. |
|||
7
victuan1
25.07.11
✎
18:30
|
Doc.Range("A1:C1").Merge();
|
|||
8
AL CAPONE
26.07.11
✎
09:14
|
(7)
команда обрабатывается без ошибок, но искомые ячейки не объединяются (6) это как ? |
|||
9
TrTrTr
26.07.11
✎
09:18
|
Книга = Эксель.WorkBooks.Open(ПутьКФайлу);
Лист = Книга.WorkSheets(1); Лист.Range("B5:W6").Merge(); Лист.Range("B5").Value = "Значение объединенной ячейки"; |
|||
10
AL CAPONE
26.07.11
✎
09:24
|
(9)
Ну всё это просто на словах, но только Лист.Range("B5:W6").Merge(); не делает падла ничего, ячейки разъединены в итоге. Уже не знаю, что ещё пробовать =(( |
|||
11
TrTrTr
26.07.11
✎
09:34
|
У меня выгружается нормально...
|
|||
12
kittystark
26.07.11
✎
09:47
|
Selection.MergeCells = -1;
|
|||
13
vicof
26.07.11
✎
09:47
|
Worksheet.Range(Worksheet.Cells(8,3),Worksheet.Cells(8,4)).MergeCells = 1;
|
|||
14
AL CAPONE
26.07.11
✎
09:55
|
(12)
ячейки выделяются, но не объединяются (13) та же фигня =( В экселе, если смотреть файл, в свойствах искомых ячеек стоит галочка "Защищаемая ячейка". Может в этом прикол ? |
|||
15
vicof
26.07.11
✎
09:57
|
(14) скорей всего
Worksheet.Range(Worksheet.Cells(8,3),Worksheet.Cells(8,4)).Locked = False |
|||
16
AL CAPONE
26.07.11
✎
10:00
|
(15)
после Doc.Range("A1:C1").Locked = 0; галочка "Защищаемая ячейка" пропала, но ячейки как и ранее просто выбраны, а не объединены. |
|||
17
vicof
26.07.11
✎
11:01
|
вместе с (13) делаешь?
|
|||
18
vicof
26.07.11
✎
11:03
|
(16) и вообще, запиши макрос и не мучайся
|
|||
19
AL CAPONE
26.07.11
✎
11:05
|
(17)
конечно (18) пробовал это первым делом, тот же макрос показывает MergeCells = True и нифига |
|||
20
AL CAPONE
26.07.11
✎
11:17
|
А с чего вообще в xls-файле все объединённые ячейки могут распадаться ?
|
|||
21
AL CAPONE
26.07.11
✎
11:30
|
Всё понятно, ответ неожиданно нашёлся на просторах интернета
Перечисленные ниже возможности, доступные в Microsoft Excel 2003, утрачиваются при сохранении книги в формате книги Microsoft Excel 5.0/95 (с расширением XLS). Объединенные ячейки: Объединенные ячейки разъединяются. Содержимое помещается в левую верхнюю ячейку. |
|||
22
AL CAPONE
26.07.11
✎
11:31
|
Соответственно никакие Merge-и в таком формате и не палят.
|
|||
23
vicof
26.07.11
✎
12:05
|
а 2003 поставить не?
|
|||
24
AL CAPONE
26.07.11
✎
12:10
|
(23)
Даже если поставить 2007, то 1с всё равно при команде Таб.Записать(Путь,"XLS"); запишет файл в формате 95-го ) |
|||
25
vicof
26.07.11
✎
12:15
|
(24) а параллельно показывать форму и сохранять в эксель не? или кнопочку сделать?
|
|||
26
AL CAPONE
26.07.11
✎
12:31
|
ВСЁ, сделал, может кому пригодится ;)
Excel.Workbooks.Open(Путь); //Начало_Обновляем формат Экселя с 95-го на текущий системный (объединённые строки воскрещаются ;) ) Excel.DisplayAlerts = 0; Excel.ActiveWorkbook.SaveAs(Путь,1); Excel.DisplayAlerts = 1; Excel.ActiveWorkbook.Close(); Excel.Workbooks.Open(Путь); //Конец_Обновляем формат Экселя с 95-го на текущий системный |
|||
27
smaharbA
26.07.11
✎
12:40
|
все уже украдено до вас
|
|||
28
smaharbA
26.07.11
✎
12:41
|
и абсолютно не обязательно сперва сохранять
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |