Delpi - Excel
2004-08-05T13:50:19+02:00
2005-10-05T23:17:30+02:00
2022-07-26T23:17:27+02:00
  • Sziasztok!

    Tudna segíteni valaki abban, hogy miként
    lehetne Delphiből excel tábla összevont
    celláit kezelni? Hogyan lehet ezekre hivatkozni, értéküket, méretüket lekérdezni?

    Előre is köszi:
    WaGusz

    Mutasd a teljes hozzászólást!
  • íme a kód
    Procedure ExcelExport( Sender:TObject; Grid:TDBGrid ); Var Excel, WorkBook, Sheet:Variant; Col, Row:Integer; Begin If Grid.DataSource.DataSet.RecordCount<1 Then Exit; Excel := UnAssigned; Excel := CreateOleObject( 'Excel.Application' ); Excel.Visible := True; Excel.DisplayAlerts := False; Excel.SheetsInNewWorkbook := 1; WorkBook := Excel.WorkBooks.Add; Sheet := WorkBook.WorkSheets[1]; Sheet.Cells.VerticalAlignment := $FFFFEFF4; Sheet.Name := FormatDateTime( 'YYYY.MM.DD.', Now ); Row := 1; Sheet.Rows[Row].Font.Bold := True; Sheet.Cells[Row, 1] := Grid.Hint; Row := 2; Sheet.Rows[Row].Font.Bold := True; Grid.DataSource.DataSet.First; For Col:=1 To Grid.Columns.Count Do Sheet.Cells[Row,Col] := Grid.Columns.Items[Col-1].Title.Caption; Inc(Row); While NOT Grid.DataSource.DataSet.EOF Do Begin For Col:=1 To Grid.Columns.Count Do Sheet.Cells[Row,Col] := Grid.DataSource.DataSet.FieldByName( Grid.Columns.Items[Col-1].FieldName ).AsString; Inc( Row ); Grid.DataSource.DataSet.Next; End; Grid.DataSource.DataSet.First; Sheet.Cells.Columns.AutoFit; SetForegroundWindow( TForm(Sender).Handle ); End;

    Mutasd a teljes hozzászólást!
  • Használj ado-t. Én úgy csináltam meg és akkor Excel sem kell a gépre.
    Mutasd a teljes hozzászólást!
  • Legegyszerűbb megoldás, ha aDelphi Superpage-en megkeresed az ExcelEport komponenst. Nincs vele túl sok gond. Bármilyen adattáblát könnyedén tudsz excelbe exportálni!!!!

    A fordítottja ennek hogy megy? excelből kiolvasni bizonyos adatokat?
    Mutasd a teljes hozzászólást!
  • Hi!
    Kiirtam txt fájlba ;-vel elválasztva.
    Excel szépen be is olvasta.
    Aztán kitöröltem az egész user felület f.kódját és most újra jrom a keresést SQL-el

    Üdv: Correon
    Mutasd a teljes hozzászólást!
  • Szia !

    Ja működött a másik is, csak egy kicsit
    bele kellett nyúlni.
    Ez meg így is működik.
    Mutasd a teljes hozzászólást!
  • Kiegeszites: a uses sorba vedd fel a ComObj unitot!
    Mutasd a teljes hozzászólást!
  • hogyan lehetne gyorsítani a keresést az adatbázisban.


    1: SQL használatával.
    2: az adott mező szerint is indexelsz...
    Mutasd a teljes hozzászólást!
  • Szia!

    Koszonom, hogy szoltal. Kicsit megkevertem a dolgokat.
    Ez a kod is mukodik, csak osszekevertem az OLE-s technikat a kompis megoldassal.
    Ez mar mukodik:

    procedure TForm1.Button1Click(Sender: TObject); var Excel: OLEVariant; begin Excel := CreateOLEObject('Excel.Application'); Excel.Visible := False; Excel.Workbooks.Add; Excel.Range['C1', 'C20'].Value := 'Érték'; Excel.SaveWorkspace('c:\\\\test.xls'); Excel.Quit; end;

    A Range parameterekent egy cellat is megadhatsz - Range['C1'].
    Mutasd a teljes hozzászólást!
  • Szia BIT Fighter !

    Az általad beírt kód nem működik,
    legalábbis nálam elesik rajta
    a fordító.
    Mutasd a teljes hozzászólást!
  • Még annyi kérdésem lenne hogy hogyan lehetne gyorsítani a keresést az adatbázisban. Paradox Tábla.
    jelenleg végig nézi elejétől mindig az adatbázist kereséskor. mondjuk így is elég gyors, 1000 adatnál nem vészes, de ennél 5x több adat kezelésére is szükség lehet majd.

    Correon
    Mutasd a teljes hozzászólást!
  • Huuh hát ez kicsit bonyeszebb mint gondoltam.. ezekhez a excel cuccokhoz a Servers fülön abszolult nem nyultam még... Lehet mégis meg kell várnom azt a cikket
    De remélem abban elejétől le lesz írva minden szépen hogy én is megértsem
    Mutasd a teljes hozzászólást!
  • Köszönöm a hozzászólásokat.
    Ki fogom próbálni ezt a kódrészletet.

    CSV formátudmról annyit hogy, végül is textfájlba is kiirathatnám, tabbal elválasztva soroknént. Igy is át lehetne tenni excelbe, de mivel a végcél az excel formátum, ezért a legjobb lenne rögtön abba menteni.

    A cikkről meg annyit hogy olvastam az első részt, vasárnap elmegyek nyarlani 22-ig, szal ha addig nem sikerül megcsinálom akkor mindenképp elolvasom (Bár sz.tem amúgy is el fogom)

    Üdv: Correon

    /az emil loginom más (blackice) azt hittem az a user nevem is a téma nyitásnál /

    Mutasd a teljes hozzászólást!
  • En ezt igy csinaltam +. A sallangokat kiszedtem:

    var Excel: OLEVariant; ... Excel := CreateOLEObject('Excel.Application'); Excel.Visible[0] := False; Excel.Workbooks.Add(NULL, 0); Excel.Range['C1, 'C1'].Value := 'Érték'; Excel.SaveWorkspace(Fájlnév, 0); Excel.Quit; ...
    Mutasd a teljes hozzászólást!
  • Ha aug 20.-ig kibírod, akkor a héten megjelent cikkem második részében pontosan ezt fogod megtalálod majd.
    Ha jól értesültem, akkor az aug 20.-i héten fogják leközölni a második részt.
    Mutasd a teljes hozzászólást!
  • Talán a legegyszerűbb az lenne, ha CSV file-ba kiírnád .
    Mutasd a teljes hozzászólást!
  • Sziasztok!
    Abban szeretnék segítséget kérni, hogy hogyan tudnék egy létező adatbázist tábla adatait excel fájlba rendezetten kiírni.
    Főleg az érdekelne hogy hogy hozzak létre üres xls-fájlt delphiből, mivel az adatbázisból naponta mentené ki exceltáblába az adatokat így mindig új, üres excel tábla kell. Ha tudtok valamilyen weboldalt vagy csináltatok már iylet és segítenétek megköszönném

    Üdv: BlackIce
    Mutasd a teljes hozzászólást!
Ez a téma lezárásra került a moderátor által. A lezárás oka: Konkr�t k�rd�seket a Tud�st�rban k�retik feltenni! K�sz�ntetik...
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd