Форум: "Основная";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];
Вниз
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 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c