powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / как создать новый лист в Excel из Builder
33 сообщений из 33, показаны все 2 страниц
как создать новый лист в Excel из Builder
    #33182483
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Испотльзую библиотеку #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
как создать новый лист в Excel из Builder
    #33182517
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
как создать новый лист в Excel из Builder
    #33182570
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. А как выделить лист с номером 3 (допустим) или именем "xxx"
...
Рейтинг: 0 / 0
как создать новый лист в Excel из Builder
    #33182584
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sheets("Sheet3").Select
Sheets("Sheet3").Copy Before:=Sheets(3)

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

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

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

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

Не работает

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

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

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

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

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

Карабас Барабас помогите плиз.
...
Рейтинг: 0 / 0
как создать новый лист в Excel из Builder
    #33182717
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну плин ... ладно, вот тебе рабочий код:
Код: 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
как создать новый лист в Excel из Builder
    #33182721
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перейти на sheet1
Sheets("Sheet1").Select


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



Это макросы на VBA. Переведите плиз на C++
...
Рейтинг: 0 / 0
как создать новый лист в Excel из Builder
    #33182722
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. так:
Код: 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
как создать новый лист в Excel из Builder
    #33182934
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще последний вопросик.

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

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

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

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

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


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

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



так работает
...
Рейтинг: 0 / 0
как создать новый лист в Excel из Builder
    #33183281
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
как создать новый лист в Excel из Builder
    #33183310
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дарю:
Код: 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
как создать новый лист в Excel из Builder
    #33183324
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")<<"sheet1").Exec(PropertyGet("Cells")<<"1,1").Exec(PropertySet("Value")<<"xxx");


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

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

Ныжно выделить (перейти) на 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
как создать новый лист в Excel из Builder
    #33186028
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sfsfНыжно выделить (перейти) на 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);
Ну дак так и пиши:

Sheet_tmp.Exec(Procedure("Select"));

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


EA=Variant::CreateObject("Excel.Application");
EA.OlePropertySet("DisplayAlerts",false);
EA.Exec(PropertySet("Visible")<<true);
EA.Exec(PropertyGet("Workbooks")).Exec(Function("Open")<<current_dir+"\\sh\\shl.xls");


Sheet_x=EA.Exec(PropertyGet("ActiveWorkbook")).Exec(PropertyGet("Sheets")<<"x");

/////////////////////
какие то действия
////////////////////


EA.Exec(PropertyGet("ActiveWorkbook")).Exec(Procedure("SaveAs")<<"xxx.xls");
EA.Exec(PropertyGet("ActiveWorkbook")).Exec(Procedure("Close"));
Sheet_tmp.Clear();
Sheet_x.Clear();
EA.Clear();
...
Рейтинг: 0 / 0
как создать новый лист в Excel из Builder
    #33238784
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКак его закрыть

.Quit
...
Рейтинг: 0 / 0
как создать новый лист в Excel из Builder
    #33323300
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как распечатать текущий лист Excel книги
...
Рейтинг: 0 / 0
как создать новый лист в Excel из Builder
    #33323317
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
макрос вот такой

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

как его на c++ переложить
...
Рейтинг: 0 / 0
как создать новый лист в Excel из Builder
    #33323999
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макрос ты записал, посмотрел, значит редактор VB вызвал, тогда встаешь курсором на PrintOut и жмешь F1, видишь:

F1
Prints the object.

Syntax

expression.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName)

expression Required. An expression that returns an object in the Applies To list.

From Optional Variant. The number of the page at which to start printing. If this argument is omitted, printing starts at the beginning.

To Optional Variant. The number of the last page to print. If this argument is omitted, printing ends with the last page.

Copies Optional Variant. The number of copies to print. If this argument is omitted, one copy is printed.

Preview Optional Variant. True to have Microsoft Excel invoke print preview before printing the object. False (or omitted) to print the object immediately.

ActivePrinter Optional Variant. Sets the name of the active printer.

PrintToFile Optional Variant. True to print to a file. If PrToFileName is not specified, Microsoft Excel prompts the user to enter the name of the output file.

Collate Optional Variant. True to collate multiple copies.

PrToFileName Optional Variant. If PrintToFile is set to True, this argument specifies the name of the file you want to print to.

Remarks

"Pages" in the descriptions of From and To refers to printed pages - not overall pages in the sheet or workbookну и задаешь параметры нужные. В конце ненужные можно пропустить, если надо пропустить первые - задаешь EmptyParam, кажется. А вот как передать только нужные параметры по имени - не знаю.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
как создать новый лист в Excel из Builder
    #33324093
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EA.Exec(PropertyGet("ActiveWorkbook")).Exec(Procedure("SaveAs")<<"Copies=1"<<"Collate=True");

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

?
...
Рейтинг: 0 / 0
как создать новый лист в Excel из Builder
    #33324109
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EA.Exec(PropertyGet("ActiveWorkbook")).Exec(Procedure("PrintOut ")<<"Copies=1"<<"Collate=True");

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

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


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