Консультация № 187558
07.10.2013, 18:30
85.93 руб.
0 4 1
Здравствуйте! У меня возникли сложности с таким вопросом: Загрузка данных из Excel в форму. С Excel нужно взять данные к примеру с дипазона А1:А30 и загрузить в ComboBox1, с ячеек В1:В30 и загрузить в ComboBox2. Файл с данными открываю так:
Код:
procedure TForm1.Open;
var
Ex, WorkBook, Sheet: Variant;
s: String;
i, l: Integer;
begin
Ex := CreateOleObject('Excel.Application');
WorkBook := Ex.WorkBooks.Open('c:\Proect\Data.xls'); // открытие файла

{Тут должна идти загрузка в комбобоксы}

WorkBook.Close;
Ex.Quit;



Заранее благодарю за помощь.

Обсуждение

Неизвестный
07.10.2013, 19:16
общий
это ответ
Здравствуйте, Владимир!
В приложении код процедуры загрузки данных из таблицы Excel в два ComboBox'а.

Нумерация листов и ячеек в Excel начинается с единицы.

Успехов!


Приложение:
procedure TForm1.Open;
var
Ex, WorkBook, Sheet: Variant;
i: Integer;
begin
//Очищаем список в ComboBox
ComboBox1.Items.Clear;
ComboBox2.Items.Clear;
Ex := CreateOleObject('Excel.Application');
// открытие файла
WorkBook := Ex.WorkBooks.Open('c:\Proect\Data.xls');
//Выбор листа, с которого надо загрузить данные
Sheet:=WorkBook.Sheets[1];
{Загрузка в комбобоксы}
for i:=1 to 30 do
begin
ComboBox1.Items.Add(Sheet.Cells[i,1].Value);
ComboBox2.Items.Add(Sheet.Cells[i,2].Value);
end;
WorkBook.Close;
Ex.Quit;
давно
Посетитель
352040
133
07.10.2013, 19:32
общий
Спасибо за быстрый ответ. Забыл в вопросе еще один вопрос задать. Как лучше сделать, если я выбираю в Комбобоксе1 скажем десятую запись (Items9) то и в Комбобоксе2 тоже выбирается десятая запись?
Об авторе:
Пользуюсь Delphi Enterprise Version7.
Неизвестный
07.10.2013, 20:03
общий
Адресаты:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ComboBox2.ItemIndex:=ComboBox1.ItemIndex;
end;

давно
Посетитель
352040
133
08.10.2013, 08:15
общий
Еще раз спасибо за быстрые и правильные ответы. Тему можно закрывать.
Об авторе:
Пользуюсь Delphi Enterprise Version7.
Форма ответа