Вниз
Скачать: CL | DM;

Excel v ListBox   Найти похожие ветки 

 
bambina ©   (2003-01-09 16:44) [0]

procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
E: Variant;
begin
E := CreateOleObject("Excel.Application");
E.WorkBooks.open("D:\Irina\psc\src\KTR_TAB.xls",true);
for i := 2 to E.WorkBooks[1].WorkSheets[1].Rows.Count do
ListBox1.Items.Add(E.WorkBooks[1].WorkSheets[1].Cells[i,2]);
end;
a v chem oshibka? beskonechnij loop poluchaetsya..
thx


 
RWolf   (2003-01-09 16:47) [1]

перед циклом:
ListBox1.Items.BeginUpdate;
после цикла:
ListBox1.Items.EndUpdate;


 
bambina ©   (2003-01-09 16:51) [2]

2 RWolf:
ne pomogaet....


 
RWolf   (2003-01-09 16:53) [3]

тогда - трассировать, смотреть значение E.WorkBooks[1].WorkSheets[1].Rows.Count


 
bambina ©   (2003-01-09 16:55) [4]

trassirovat ~ debugger?
Nu znachenie ne pokazivaet, kak ne povernis... no i oshibku na stroku ne vivodit


 
Игорь Шевченко ©   (2003-01-09 16:58) [5]

Rows.Count равно 65536.
Тебе надо иным способом определить, до какой строки читать


 
Игорь Шевченко ©   (2003-01-09 17:00) [6]

procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
E: Variant;
begin
E := CreateOleObject("Excel.Application");
E.WorkBooks.open("D:\test.xls",true);
// J := E.WorkBooks[1].WorkSheets[1].Rows.Count;
for i := 2 to 10 do
ListBox1.Items.Add(E.WorkBooks[1].WorkSheets[1].Cells[i,1]);
end;

Прекрасно работает


 
bambina ©   (2003-01-09 17:15) [7]

2 Shevchenko:
nu esli prosto zifry zadat, to da..

Izmenenie voprosa: kak mozhno poschitat strochki v Excel faile?


 
Игорь Шевченко ©   (2003-01-09 17:17) [8]

bambina © (09.01.03 17:15)

По содержимому. До пустой строки, например, или до специальной строки.


 
bambina ©   (2003-01-09 17:23) [9]

2 Shevchenko:

do pustoj: Slishkom dolgo iz-za proverki..
do srezialnoj: otsutstvuet..


 
Игорь Шевченко ©   (2003-01-09 17:41) [10]

procedure TForm1.FormCreate(Sender: TObject);
var
I, J: Integer;
E: Variant;
S: String;
begin
E := CreateOleObject("Excel.Application");
E.WorkBooks.open("D:\test.xls",true);
J := E.WorkBooks[1].WorkSheets[1].Rows.Count;
for i := 2 to J do begin
S := E.WorkBooks[1].WorkSheets[1].Cells[i,1];
if S = "" then
Break;
ListBox1.Items.Add(S);
end;
end;


 
bambina ©   (2003-01-09 17:46) [11]

2 Shevchenko:
dolgo slishkom.. no za otsutstviem inogo..
thx


 
Игорь Шевченко ©   (2003-01-09 17:54) [12]


> dolgo slishkom..


????
Ну, через интерфейсы :-))))


 
Паша ©   (2003-01-10 13:02) [13]

var
rng, vExcel: Variant;
R,C: integer;
begin
..........
vExcel:= CreateOleObject("Excel.Application");
WorkSheet:=vExcel.ActiveSheet;
WorkSheet:=vExcel.ActiveSheet;

rng:=WorkSheet.UsedRange;
R:=rng.Rows.Count;
C:=rng.Columns.Count;
for i:= 1 to r do
....
в R сидит только кол-во ИСПОЛЬЗУЕМЫХ строк


 
Игорь Шевченко ©   (2003-01-10 13:12) [14]

Паша © (10.01.03 13:02)

Спасибо!

Век живи, век учись, однако...


 
OlDemon ©   (2003-01-10 13:52) [15]

2 Игорь Шевченко>
А еще можно
NOils:=FExcel.ActiveCell.CurrentRegion.Rows.Count;
тоже выдаст количество строчек, но только не обязательно без пробелов, в общем в хелпе номально написано про CurrentRegion



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
1-62605
Zedican
2003-01-09 10:49
2003.01.20
Как сделать ввод в строку по типу Excel-а?


1-62492
Lamer11
2003-01-09 19:50
2003.01.20
ну не знаю я, и что? ;)


8-62677
nsvi
2002-09-30 11:32
2003.01.20
Предлагаю решение проблемы сохранения 256-цветных иконок


1-62563
Term
2003-01-10 17:57
2003.01.20
Нужно переписать число словами


3-62385
SasaR
2002-12-25 11:50
2003.01.20
IBX - автозакрытие датасетов




   Наверх