нет там не так все просто как кажется или мне тока так кажется...вот что у меня есть по этой теме
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
D = [#9];
var
F : TextFile;
Str1, StrFld,Fn : String;
i,k, Pos1, Pos2, Col, Row : Integer;
EndRow : Boolean;
exApp : Variant;
exBook : Variant;
exSheet : Variant;
begin
try
if OpenDialog1.Execute=false then exit;
Fn:=OpenDialog1.FileName;
exApp := CreateOleObject('Excel.Application');
exApp.Visible := True;
exBook := exApp.WorkBooks.Add;
exSheet := exBook.WorkSheets[1];
AssignFile(F, Fn);
Reset(F);
Pos1 := 0;
Pos2 := 0;
Col := 1;
Row := 1;
k:=0;
EndRow := False;
while not Eof(F) do
begin
Readln(F,Str1);
for i := 1 to Length(Str1) do
begin
k:=k+1;
if i = 1 then
Pos1 := i
else
if Str1[i - 1] in D then
Pos1 := i;
if i = Length(Str1) then
begin
Pos2 := i;
EndRow := True;
end else
if Str1[i + 1] in D then
Pos2 := i;
if Pos2 > 0 then
begin
StrFld := Copy(Str1, Pos1, Pos2 - Pos1 + 1);
OemToChar(PChar(StrFld),pchar(StrFld));
{
if k>12 then // позиция конца шапки(№ строки)
begin
exSheet.Cells[Row,1].Value :=copy(StrFld,1,23);
exSheet.Cells[Row,2].Value :=copy(StrFld,24,3);
exSheet.Cells[Row,3].Value :=copy(StrFld,27,8);
exSheet.Cells[Row,4].Value :=copy(StrFld,35,8);
end;
}
Pos2 := 0;
Inc(Col);
if EndRow then
begin
Inc(Row);
Col := 1;
EndRow := False;
end;
end;
end;
end;
finally
try CloseFile(F) finally end;
exSheet := Unassigned;
exBook := Unassigned;
exApp := Unassigned;
end;
end;
в этом коде все данные в excel скидываются в одну ячейку книги, листа. а мне нужно чтобы получилось более менее похожее на таблицу, чтобы потом в экселе можно было проводить расчеты с помощью этих данных. для этого я начала кое-что делать это прописано в комментарии - но это тоже не особо верно, потому что шапка отчета тоже разделяется (и получаются обрывки слов, пустые места). помогите пожалуйста, дело еще в том, что после конца таблицы, шапка вновь будет повторятся с таблицей несколько раз, просто я выложенный файл сократила, так он весит 3 метров.