Page 2 of 2 FirstFirst 1 2
Results 16 to 28 of 28

Thread: excel

  1. #16
    Senior Member EricLang's Avatar
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,330
    ik ga EEN dag proberen het te automatiseren :-)

  2. #17
    Ooit heb ik een uitwisseling moeten doen waarbij Excel gebruikt werd.
    Dit was niet groot of veel maar daar heb ik toen het volgende stukje code bij gebruikt.
    Het is quick and dirty maar geeft je een idee hoe ik het toen heb aangepakt.
    Misschien is het iets.

    In onderstaande procedure worden de gegevens gekopieerd naar een stringgrid op het formulier.

    Gr,
    Jos

    Code:
    procedure TForm43.sh1(SheetIndex:integer);
    Var
      XLapp1, Sheet:Variant ;
      MaxRow, MaxCol,X, Y:integer ;
      str:string;
      arrData:Variant;
    begin
      Str:=trim(OD.FileName);
    
      XLApp1 := createoleobject('excel.application');
      XLApp1.Workbooks.open(Str) ;
    
      Sheet := XLApp1.WorkSheets[SheetIndex] ;
    
      MaxRow := Sheet.Usedrange.EntireRow.count ;
      MaxCol := sheet.Usedrange.EntireColumn.count;
    
      //read the used range to a variant array
      arrData:= Sheet.UsedRange.Value;
    
      form43.stg.RowCount:=maxRow+1;
      form43.stg.ColCount:=maxCol+1;
    
      for x:=1 to maxCol do
        for y:=1 to maxRow do
          //copy data to grid
          stg.Cells[x,y]:=arrData[y, x]; // do note that the indices are reversed (y, x)
    
      XLApp1.Workbooks.close;
    end;

  3. #18
    Senior Member EricLang's Avatar
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,330
    Thanks. Misschien komt dit van pas. Quick and dirty is ook het doel :-)

  4. #19
    Alleen het middel, hoop ik, geheiligd door het doel.
    1+1=b

  5. #20
    tms flexcell?

  6. #21
    Senior Member EricLang's Avatar
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,330
    dat kost geld...

  7. #22
    dat kost geld...
    Fijn dat er nog vrijwillige programmeurs bestaan voor commerciele projecten ....

  8. #23
    Die 175 euro ben je toch onderhand al wel kwijt aan het schrijven van replies in deze thread?
    1+1=b

  9. #24
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,140
    Quote Originally Posted by GolezTrol View Post
    Die 175 euro ben je toch onderhand al wel kwijt aan het schrijven van replies in deze thread?
    Je zou je soms verbazen hoe lang het duurt om geld voor iets wat niet geplanned is, uit sommige organisaties te persen.

  10. #25
    Senior Member EricLang's Avatar
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,330
    nah. ik ga niet TMS aanschaffen voor een eenmalig iets.
    ik kan best snel typen...

  11. #26
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,140
    Indien de excel redelijk eenvoudig (te parameteriseren) is, dan is wellicht fpspreadsheet in een dll ook nog een simpele optie.

  12. #27
    Wanneer je met een olevariant array werkt en daar je data in stopt kan je in 1 keer al je data naar excel schrijven
    Volgens mij werkt het andersom ook.
    Hieronder een kort voorbeeld

    Code:
    procedure TDSO_5012.DatatoExcel(Iwave:Array of SmallInt);
    var
        ExcelApp : TexcelApplication;
        Sheet : TexcelWorksheet;
        data: olevariant;
        i, num_points :integer;
    begin
     num_points:= 1000;
     ExcelApp := TexcelApplication.Create(nil);
     Sheet := TexcelWorksheet.Create(nil);
     ExcelApp.Connect;
     ExcelApp.Workbooks.Add(xlwbatworksheet, 0);
     sheet.ConnectTo(ExcelApp.ActiveSheet as _Worksheet);
     Data := VarArrayCreate([0, num_points+1, 0, 1], varvariant);
    
     data[0, 0] :='time';
     data[0, 1] :='Value';
     for i := 0 to num_points - 1 do
     begin
       data[i + 1, 0] :=i;
       data[i + 1, 1] :=Iwave[i];
     end;
     sheet.range['A1', 'B'+ inttostr(num_points+1)].value:=data;
     Excelapp.Visible[0] := true;
     sheet.disconnect;
     excelapp.disconnect;
     sheet.free;
     excelapp.free;
    end;

  13. #28
    Senior Member EricLang's Avatar
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,330
    De excelleescode was bijzonder handig! Godallemachtig wat is dat overigens sloom zeg! Maar goed het is eenmalig.
    Direct weer opslaan als CSV en we zijn beyond excel :-)

Page 2 of 2 FirstFirst 1 2

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •