powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как в экзеле открыть новый лист
5 сообщений из 5, страница 1 из 1
Как в экзеле открыть новый лист
    #34591450
Silvery_star
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Variant App,Books,Sheet,cell;
OleVariant v1;
App=Variant::CreateObject("Excel.Application");

Books=App.OlePropertyGet("Workbooks");
Books.OleFunction("Add");
Sheet= App.OlePropertyGet("ActiveWorkbook");
Sheet=App.OlePropertyGet("WorkSheets",1);

int i=2;
//bool flag(true);

Sheet.OlePropertyGet("Columns").OlePropertyGet("Item",1).OlePropertySet("ColumnWidth", 18);
Sheet.OlePropertyGet("Columns").OlePropertyGet("Item",2).OlePropertySet("ColumnWidth", 18);
Sheet.OlePropertyGet("Columns").OlePropertyGet("Item",3).OlePropertySet("ColumnWidth", 13);
Sheet.OlePropertyGet("Columns").OlePropertyGet("Item",4).OlePropertySet("ColumnWidth", 11);
Sheet.OlePropertyGet("Columns").OlePropertyGet("Item",5).OlePropertySet("ColumnWidth", 18);
Sheet.OlePropertyGet("Columns").OlePropertyGet("Item",6).OlePropertySet("ColumnWidth", 10);
Sheet.OlePropertyGet("Columns").OlePropertyGet("Item",7).OlePropertySet("ColumnWidth", 10);
Sheet.OlePropertyGet("Columns").OlePropertyGet("Item",8).OlePropertySet("ColumnWidth", 40);

cell=Sheet.OlePropertyGet("Cells",1,1);
cell.OlePropertySet("Value","Íîìåð");

cell=Sheet.OlePropertyGet("Cells",1,2);
cell.OlePropertySet("Value","Äàòà");

cell=Sheet.OlePropertyGet("Cells",1,3);
cell.OlePropertySet("Value","Òèï çâîíêà");

cell=Sheet.OlePropertyGet("Cells",1,4);
cell.OlePropertySet("Value","Êàòåãîðèÿ");

cell=Sheet.OlePropertyGet("Cells",1,5);
cell.OlePropertySet("Value","Âûç.Íîìåð");

cell=Sheet.OlePropertyGet("Cells",1,6);
cell.OlePropertySet("Value","Ïðîäîëæ.");

cell=Sheet.OlePropertyGet("Cells",1,7);
cell.OlePropertySet("Value","Ñóììà");

cell=Sheet.OlePropertyGet("Cells",1,8);
cell.OlePropertySet("Value","Íàïðàâëåíèå");


LocalMSQuery->First();
while(!LocalMSQuery->Eof)
{
cell=Sheet.OlePropertyGet("Cells",i,1);
cell.OlePropertySet("Value",LocalMSQuery->FieldByName("Íîìåð")->AsString.c_str());

cell=Sheet.OlePropertyGet("Cells",i,2);
cell.OlePropertySet("Value",LocalMSQuery->FieldByName("Äàòà")->AsString.c_str());

cell=Sheet.OlePropertyGet("Cells",i,3);
cell.OlePropertySet("Value",LocalMSQuery->FieldByName("Òèï_çâîíêà")->AsString.c_str());

cell=Sheet.OlePropertyGet("Cells",i,4);
cell.OlePropertySet("Value",LocalMSQuery->FieldByName("Êàòåãîðèÿ")->AsString.c_str());

cell=Sheet.OlePropertyGet("Cells",i,5);
cell.OlePropertySet("Value",LocalMSQuery->FieldByName("Âûç_íîìåð")->AsString.c_str());

cell=Sheet.OlePropertyGet("Cells",i,6);
cell.OlePropertySet("Value",LocalMSQuery->FieldByName("Ïðîäîëæ")->AsString.c_str());

cell=Sheet.OlePropertyGet("Cells",i,7);
cell.OlePropertySet("Value",LocalMSQuery->FieldByName("Ñóììà")->AsString.c_str());

cell=Sheet.OlePropertyGet("Cells",i,8);
cell.OlePropertySet("Value",LocalMSQuery->FieldByName("Íàïðàâëåíèå")->AsString.c_str());
i++ ;
LocalMSQuery->Next();

}

App.OlePropertySet("Visible",true);
С помощю этого скрипта я загружаю данные из GridEh в exel.
Мне нужно чтобы другой такой же скрип експортировал данные в другом листе.., Лист нужно создать..., Т.е. если если возможность то создать новый лист, переименовать его и экспортировать туда данные...(Проблема у меня только с создание нового листа..)
...
Рейтинг: 0 / 0
Как в экзеле открыть новый лист
    #34593075
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гдето из манов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
SheetsInNewWorkbook задает количество листов в создаваемой книге, пусть в первой книге их будет  3 (Кстати по умолчани тоже создается книга, содержащая три листа).

vVarApp.OlePropertySet("SheetsInNewWorkbook", 3 );

Добавляем книгу из  3  листов в объект vVarBooks.

vVarBooks.OleProcedure("Add");

Количество листов во второй создаваемой книге, пусть будет  5 .

vVarApp.OlePropertySet("SheetsInNewWorkbook", 5 );

Добавляем книгу из  5  листов в объект

vVarBooks.OleProcedure("Add");

Переменная vVarBook содержит ссылку на текущую книгу. (Пусть текущая книга  1 ).

vVarBook=vVarBooks.OlePropertyGet("Item", 1 );

Переменной vVarSheets присваиваем значение Worksheets - свойство объекта Excel.Application, содержащее набор страниц книги Excel.

vVarSheets=vVarBook.OlePropertyGet("Worksheets") ;

Присвоение имен листам книги. Т.е, необходимо взять лист выбранной книги и дать ему имя. Заодно и покрасим листы, для чего в любом графическом редакторе создадим два файла с именами a.gif и b.gif размером в несколько пиаселей и соответственно с желтой и красной заливкой. Размер сумарный файлов менее 1к, но приятнее работать не с белым листом. Файлы должны быть помещены в текущую директорию.

vVarSheet=vVarSheets.OlePropertyGet("Item", 1 );
vVarSheet.OlePropertySet("Name","Желтый лист");
AnsiString vAsCurDir=GetCurrentDir();
AnsiString vAsCurDir1=vAsCurDir+"\\a.gif";
vVarSheet.OleProcedure("Activate");
vVarBook.OlePropertyGet("ActiveSheet").
  OleFunction("SetBackgroundPicture",vAsCurDir1.c_str());
vVarSheet=vVarSheets.OlePropertyGet("Item", 2 );
vVarSheet.OlePropertySet("Name","Краснай лист");
vAsCurDir1=vAsCurDir+"\\b.gif";
vVarSheet.OleProcedure("Activate");
vVarBook.OlePropertyGet("ActiveSheet").
  OleFunction("SetBackgroundPicture",vAsCurDir1.c_str());
vVarSheets.OlePropertyGet("Item", 3 ).
                   OlePropertySet("Name","Пустой лист");
...
Рейтинг: 0 / 0
Как в экзеле открыть новый лист
    #34594287
Silvery_star
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное.!!! Попробую... По идее должно получится...
...
Рейтинг: 0 / 0
Как в экзеле открыть новый лист
    #34614056
Silvery_star
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как потом можно этот лист сохранить ???
...
Рейтинг: 0 / 0
Как в экзеле открыть новый лист
    #34614083
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рекомендую - всё доходчиво расписано и направления дальнейших поисков указано
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как в экзеле открыть новый лист
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]