Имя: Пароль:
1C
1C 7.7
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
и абсолютно не обязательно сперва сохранять
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс