Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Проблема с переносом строк


Автор: Gamber 13.8.2008, 16:38
Добрый день... Возникла следующая проблема...

Есть Excel файл со статичной структурой из определеных ячеек нужно забрать данные и ввести их в текстовое поле в программе...

При использовании следующей струкутры:
Код

procedure TForm1.FromExcel(Filename:String);

var
 E: Variant;
 i: integer;
 j: integer;
 str: string;

begin
 E:=CreateOleObject('Excel.Application');
 E.visible := true;
 E.WorkBooks.Open(FileName);
 View.Clear;
 For i:=7 to 45 do
   For j:=2 to 14 do
       str := str+String(E.Cells[i,j].Value)+' ';
       View.Lines.Add(str);
 E.Quit;
 end;



И получаю вполне ожидаемый результат:
Код

84000 .1 1 .2 3 .3 5 .4 2 .5 4 .6 3 84340 .1 2 .2 7 .3 2 .4 2 .5 6 .6 2 84470 .1 3 .2 2 .3 1 .4 1 .5 7 .6 1 84430 .1 5 .2 1 .3 15 .4 15 .5 4 .6 7 84600 .1 4 .2 15 .3 4 .4 4 .5 13 .6 5 83660 .1 7 .2 4 .3 12 .4 12 .5 45 .6 12 84010 .1 2 .2 12 .3 5 .4 5 .5 5 .6 11 84140 .1 1 .2 5 .3 4 .4 4 .5 12 .6 6 83710 .1 15 .2 4 .3 3 .4 3 .5 3 .6 7 84090 .1 4 .2 3 .3 4 .4 4 .5 7 .6 4 83680 .1 12 .2 4 .3 4 .4 4 .5 5 .6 13


Необходимо же получить следующее

Код

84000 .1 1 .2 3 .3 5 .4 2 .5 4 .6 3
84340 .1 2 .2 7 .3 2 .4 2 .5 6 .6 2
84470 .1 3 .2 2 .3 1 .4 1 .5 7 .6 1
84430 .1 5 .2 1 .3 15 .4 15 .5 4 .6 7
84600 .1 4 .2 15 .3 4 .4 4 .5 13 .6 5
83660 .1 7 .2 4 .3 12 .4 12 .5 45 .6 12
84010 .1 2 .2 12 .3 5 .4 5 .5 5 .6 11
84140 .1 1 .2 5 .3 4 .4 4 .5 12 .6 6
83710 .1 15 .2 4 .3 3 .4 3 .5 3 .6 7
84090 .1 4 .2 3 .3 4 .4 4 .5 7 .6 4
83680 .1 12 .2 4 .3 4 .4 4 .5 5 .6 13


Подскажите пожалуйста, как решить проблему...

Автор: Gamber 13.8.2008, 17:20
Решено...
Код

procedure TForm1.FromExcel(Filename:String);
var
 E: Variant;
 data: integer;
 i: integer;
 j: integer;
 str: string;
begin
 E:=CreateOleObject('Excel.Application');
 E.visible := true;
 E.WorkBooks.Open(FileName);
 View.Clear;
 For i:=7 to 45 do
   begin
   str:='';
   str:=str+#10;
   For j:=2 to 14 do
      str := str+String(E.Cells[i,j].Value)+' ';
      View.Lines.Add(str);
   end;
 E.Quit;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)