Консультация № 144879
24.09.2008, 14:18
0.00 руб.
0 2 1
Уважаемые эксперты! Вопрос по взаимодействию Excel и Delphi: Необходимо в выбранном файле Excel выделить некий диапазон (один столбец 10-15 значений, заранее неизвестно), затем данные из этого диапазона (10-15 значений) сохранить например в массиве arr[]. Заранее благодарен.

Обсуждение

Неизвестный
24.09.2008, 14:48
общий
это ответ
Здравствуйте, Kaz1972!
Предлагаю следующую реализацию.
В раздел Uses необходимо добавить модуль ComObj.

Приложение:
procedure TForm1.Button1Click(Sender: TObject);
var
WorkBook, Sheet: variant;
arr: array of integer;
i, kol, stolb: integer;

begin
E:= CreateOleObject('Excel.Application'); E.Visible:= True;
WorkBook:= E.WorkBooks.Open('c:\1.xls');
Sheet:= WorkBook.ActiveSheet;
kol:= 0; SetLength(arr, kol);
stolb:= 1; {номер столбца}
for i:= 1 to 20 do {диапазон строк}
begin
kol:= kol+1; SetLength(arr, kol); {счетчик массива}
try {на случай если попадется некорректное значение}
arr[kol-1]:= Sheet.Cells[i, stolb];
except
arr[kol-1]:= 0;
end;
end;
WorkBook.Save; WorkBook.Close;
E.Quit; E:= UnAssigned;

end;
давно
Мастер-Эксперт
425
4118
27.09.2008, 13:56
общий
Kaz1972
...но как узнать границы выделенного диапазона в Excel. Я могу выделить мышкой любой столбец с данными.

Если бы Вы прямо в вопросе написали, что будете выделять диапазон ячеек мышкой в Excel, то и ответ был бы такой, как Вам нужно. В ответе предполагается, что диапазон выбирается уже в Вашей программе.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Форма ответа