Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / как создать новый лист в Excel из Builder / 25 сообщений из 33, страница 1 из 2
25.07.2005, 13:11
    #33182483
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Испотльзую библиотеку #include <comobj.hpp> для работы из C++ builder 6 с Excel


app = CreateOleObject("Excel.Application");
books = app_akt.OlePropertyGet("Workbooks");
books.Exec(Procedure("Open")<<current_dir+"\\shablon\\akt_info.xls");
book = books_akt.OlePropertyGet("item",1);
sheet= book_akt.OlePropertyGet("WorkSheets",1);
app.OlePropertySet("Visible", 0);
app.OlePropertySet("DisplayAlerts",false);



toExcelCell(1,1,(AnsiString)Panel23->Caption); //так вывожу в ячейку 1,1 текст

А как в книге создать новый лист из C++ builder 6?????????????
...
Рейтинг: 0 / 0
25.07.2005, 13:21
    #33182517
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  Variant EA=Variant::CreateObject("Excel.Application");
  try
  {
    EA.Exec(PropertySet("Visible")<<true);
    EA.Exec(PropertyGet("Workbooks")).Exec(Function("Add"));

    EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")).Exec(Procedure("Add"));

--
With best regards, Karabas Barabas
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
25.07.2005, 13:42
    #33182570
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Спасибо. А как выделить лист с номером 3 (допустим) или именем "xxx"
...
Рейтинг: 0 / 0
25.07.2005, 13:46
    #33182584
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Sheets("Sheet3").Select
Sheets("Sheet3").Copy Before:=Sheets(3)

а как выполнить это на C++
...
Рейтинг: 0 / 0
25.07.2005, 14:02
    #33182626
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Пиши макрос в экселе и смотри его.

--
With best regards, Karabas Barabas
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
25.07.2005, 14:02
    #33182627
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
sfsfSheets("Sheet3").Select
Sheets("Sheet3").Copy Before:=Sheets(3)

а как выполнить это на C++
По аналогии с приведенным кодом.

--
With best regards, Karabas Barabas
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
25.07.2005, 14:06
    #33182642
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")).Exec(Procedure("Copy Befor 3"));

Не работает

Sheets("Sheet1").Copy Before:=Sheets(3)
...
Рейтинг: 0 / 0
25.07.2005, 14:14
    #33182665
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
ты макрос написал ? делай так же, там только некоторые свойства надо вызывать как функции

--
With best regards, Karabas Barabas
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
25.07.2005, 14:15
    #33182666
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Вот макрос.

Sheets("Sheet1").Copy Before:=Sheets(3)

так вызываю в С++

EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")).Exec(Procedure("Copy Befor 3"));
...
Рейтинг: 0 / 0
25.07.2005, 14:25
    #33182705
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
В принципе мне нужно
1. как перейти на нужный лист
2. как скопировать нужный лист в конец книги

Карабас Барабас помогите плиз.
...
Рейтинг: 0 / 0
25.07.2005, 14:27
    #33182717
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Ну плин ... ладно, вот тебе рабочий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Variant EA=Variant::CreateObject("Excel.Application");
  try
  {
    EA.Exec(PropertySet("Visible")<<true);
    EA.Exec(PropertyGet("Workbooks")).Exec(Function("Add"));

    Variant Sheet=EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")<<"Eeno3");
    EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")<<"Eeno1").Exec(Procedure("Copy")<<Sheet);
  }
  __finally
  {
    EA=Unassigned;
  }
}
--
With best regards, Karabas Barabas
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
25.07.2005, 14:28
    #33182721
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Перейти на sheet1
Sheets("Sheet1").Select


Скопировать лист1 после листа 3
Sheets("Sheet1").Copy After:=Sheets(3)



Это макросы на VBA. Переведите плиз на C++
...
Рейтинг: 0 / 0
25.07.2005, 14:28
    #33182722
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
т.е. так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Variant EA=Variant::CreateObject("Excel.Application");
  try
  {
    EA.Exec(PropertySet("Visible")<<true);
    EA.Exec(PropertyGet("Workbooks")).Exec(Function("Add"));

    Variant Sheet=EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")<<"Лист3");
    EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")<<"Лист1").Exec(Procedure("Copy")<<Sheet);
  }
  __finally
  {
    EA=Unassigned;
  }
}
--
With best regards, Karabas Barabas
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
25.07.2005, 15:19
    #33182934
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Еще последний вопросик.

Как переименовать лист??? sheet1 в sss
...
Рейтинг: 0 / 0
25.07.2005, 15:24
    #33182955
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Блин, аналогичным образом, к тому же у листа есть свойство Name

--
With best regards, Karabas Barabas
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
25.07.2005, 15:26
    #33182958
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")<<"sheet1").Exec(PropertyGet("Name")<<"ss"

Ругается
...
Рейтинг: 0 / 0
25.07.2005, 15:26
    #33182961
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Не гет а сет

--
With best regards, Karabas Barabas
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
25.07.2005, 15:28
    #33182969
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
СПАСИБО БОЛЬШОЕ
...
Рейтинг: 0 / 0
25.07.2005, 16:00
    #33183062
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
блин. Наверно уже достал.

Пытаюсь вывести в ячейку 1,1 какие нибудь данные:


EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Cells")<<"1,1").Exec(PropertySet("Value")<<"xxx");

Ругается
...
Рейтинг: 0 / 0
25.07.2005, 16:03
    #33183075
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")).Exec(PropertyGet("Cells")<<"1,1").Exec(PropertySet("Value")<<"xxx");



так работает
...
Рейтинг: 0 / 0
25.07.2005, 17:02
    #33183281
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")<<"sheet1").Exec(PropertyGet("Cells")<<"1,1").Exec(PropertySet("Value")<<"xxx");

Но както странно работает ("Cells")<<"1,1") выводит в ячейку 1-1(строка-столбец)
("Cells")<<"2") выводит в ячейку 1-2
("Cells")<<"3") выводит в ячейку 1-3


А во вторую строку как вывести????
...
Рейтинг: 0 / 0
25.07.2005, 17:11
    #33183310
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Дарю:
Код: 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.
AnsiString OutRange(int x,int y)
{
  int R='Z'-'A'+ 1 ;
//  char R0='A';

  AnsiString Out=(x>=R)? "A":"";
  x%=R;
  Out=Out+char(x+'A');
  Out=Out+AnsiString(y+ 1 );
  return Out;
}
AnsiString Range(int x,int y)
{
  AnsiString Out=OutRange(x,y);
  return Out+":"+Out;
}
AnsiString Range(int x1,int y1,int x2,int y2)
{
  return OutRange(x1,y1)+":"+OutRange(x2,y2);
}
Variant SetValue(Variant EA,int x,int y,AnsiString v,bool sel)
{
  if (v.Length()<= 0 ) v=" ";
  Variant r=EA.Exec(PropertyGet("Range")<<Range(x,y));
  r.Exec(PropertySet("Value")<<v);
  if (sel) r.Exec(Procedure("Select"));
  return r;
}

--
With best regards, Karabas Barabas
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
25.07.2005, 17:16
    #33183324
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")<<"sheet1").Exec(PropertyGet("Cells")<<"1,1").Exec(PropertySet("Value")<<"xxx");


А здесь чего неправильно
...
Рейтинг: 0 / 0
25.07.2005, 17:26
    #33183347
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
Не знаю, через Cells не работал

--
With best regards, Karabas Barabas
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
26.07.2005, 16:57
    #33185483
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как создать новый лист в Excel из Builder
уважаемый Карабас Барабас

Ныжно выделить (перейти) на sheet3. Вот Excel макрос

Sheets("Sheet3").Select

а на C++ не выходит

Sheet_tmp=EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")<<"sheet4");
EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")<<Sheet_tmp);



СПАСИБО
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / как создать новый лист в Excel из Builder / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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