Показать сообщение отдельно
  #5  
Старый 30.05.2011, 20:42
Регина Регина вне форума
Прохожий
 
Регистрация: 08.04.2008
Сообщения: 15
Репутация: 10
По умолчанию

нет там не так все просто как кажется или мне тока так кажется...вот что у меня есть по этой теме
Код:
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 метров.
Ответить с цитированием