Имя: Пароль:
1C
1С v8
Вызов COMОбъекта Excel
0 AVI_stealth
 
21.03.13
15:10
Здрасте, уважаемые!
Есть база данных, нужно написать выгрузку всех данных в файл EXCEL и сохранить его на жестком диске.
Трудности у меня именно с EXCEL`ем, как я ни пытался найти толковые примеры по работе с ним, ничего не выходит.
Делаю так:

ExcelПриложение = Новый COMОбъект("Excel.Application");
//вызываю COMОбъект

ExcelФайл = ExcelПриложение.WorkBooks.Add();
//добавляю новую книгу

ExcelЛист = ExcelФайл.Sheets(1);
//указываю лист

//потом фигачу данные, а сохранить и закрыть COMОбъект не могу
//пытаюсь так

ExcelФайл.WorkBooks.SaveAs(ПутьКФайлу);
ExcelФайл.WorkBooks.Close();

Пишет, мол, не знаю что такое "SaveAs". Как правильно записать и закрыть этот COMОбъект?
1 kimba
 
21.03.13
15:27
бери выводи в табличный документ, а потом сохраняй его в excel, делается это просто

ТабДок.Записать(ПутьВыгрузка,ТипФайлаТабличногоДокумента.XLS97);
2 SpiKe
 
21.03.13
15:35
ExcelФайл.SaveAs(ПутьКФайлу);
ExcelФайл.Application.Quit();
3 dk
 
21.03.13
15:36
ExcelФайл.WorkBooks замени на ExcelФайл
4 SpiKe
 
21.03.13
15:37
5 AVI_stealth
 
22.03.13
08:36
(2) (3) (4) Огромное СПАСИБО, друзья!! Очень помогли!))))
6 AVI_stealth
 
22.03.13
08:43
(4) Хотя еще один вопросик))

Как установить формат ячейки нашел. А как-нибудь можно установить для всех ячеек один формат, чтобы для каждой ячейки это не прописывать в цикле?
Кстати, какой номер формата "Текстовый"?? 10?
7 dk
 
22.03.13
08:55
можно
через ТвойЛист.Range("A1:D5").NumberFormat
или через ТвойЛист.Columns(5).NumberFormat
8 AVI_stealth
 
22.03.13
08:58
(7) а если неизвестен диапазон строк, то получается по всем колонкам перечислить?

а как указать номер?
я пишу так:

ExcelЛист.Cells(Счетчик,4).NumberFormat = 10;

Получается чушь какая-то))) не знаю как правильно номер записать и какой конкретный номер у "текстового".
9 dk
 
22.03.13
09:00
что именно писать в NumberFormat смотри через запись макросов
10 AVI_stealth
 
22.03.13
09:01
(9) это как "через запись макросов"?
11 dk
 
22.03.13
09:02
кнопка в Excel меню -вид - записать макрос
12 AVI_stealth
 
22.03.13
09:11
(11) Ура!! Получилось)))

ExcelЛист.Cells(Счетчик,5).NumberFormat = "@";

Спасибо за подсказку;))
Закон Брукера: Даже маленькая практика стоит большой теории.