C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Листы в Excel
Димыч
Отправлено: 22.05.2005, 20:38


Дежурный стрелочник

Группа: Участник
Сообщений: 38



Поключаюсь к *.xls через ADO.
Как получить список наименований листов в документе
Заранее благодарен
Димыч
Отправлено: 24.05.2005, 21:45


Дежурный стрелочник

Группа: Участник
Сообщений: 38



Ну неужели никто не знает — помогите я горю — срок сдавать близится.
AVC
Отправлено: 25.05.2005, 09:26


Ветеран

Группа: Модератор
Сообщений: 1583



Попробуйте "копать" в этом направлении
QUOTE

Sheets Property Example

This example creates a new worksheet and then places a list of the active workbook's sheet names in the first column.

Set newSheet = Sheets.Add(Type:=xlWorksheet)
For i = 1 To Sheets.Count
   newSheet.Cells(i, 1).Value = Sheets(i).Name
Next i

Димыч
Отправлено: 26.05.2005, 22:14


Дежурный стрелочник

Группа: Участник
Сообщений: 38



Уважаемый AVC, а не найдется ли у вас Exampl`a по этой фене — так и не смог разобраться.
Благодарю.
AVC
Отправлено: 27.05.2005, 08:43


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE
а не найдется ли у вас Exampl`a по этой фене

Нет. Если бы была — я бы не поскупился.
Как появиться свободных минут 20 — набросаю.
avc*
Отправлено: 27.05.2005, 10:44


Не зарегистрирован







Димыч, вам повезло.
CODE

Variant MSExcell; // создать
Variant XLWBooksl; // MSExcel.OlePropertyGet ("Workbooks");
Variant XLWBook; // XLWBooks.OleFunction ("Open", xfile);
Variant XLSheets;
Variant XLSheet;

XLSheets = XLWBook.OlePropertyGet("Worksheets");
int cnt = XLSheets.OlePropertyGet("Count");
AnsiString ret = xfile;
for (int i=1; i <= cnt; i++)
{  XLSheet = XLSheets.OlePropertyGet("Item",i);
   if (!XLSheet.IsNull())
       ret += "\n" + AnsiString(XLSheet.OlePropertyGet("Name"));
}
...
return ret;

** avtoritet
Отправлено: 30.05.2005, 03:53


Не зарегистрирован







Вот так я делал на ВБА:

Sub xxx()
With Application.Workbooks.Item(1)
For i = 1 To .Sheets.Count
MsgBox (.Sheets.Item(i).Name)
Next i
End With
End Sub

Думаю уж сам перебьешь на С, если нужно.
olegenty
Отправлено: 30.05.2005, 07:20


Ветеран

Группа: Модератор
Сообщений: 2412



2 ** avtoritet
именно это и написал AVC в предшествующем твоему посте. только без использования библиотеки типов явно.

Вернуться в Работа с базами данных в C++Builder