![]() |
Daten in Excel-Zellen verschieben
Hallo zusammen,
ich hab eine Excel-Datei (aus einem Fremdsystem exportiert) vorliegen, die wie folgt aussieht
Delphi-Quellcode:
Kunde1 Neumarkt / OPf 01.2004 02.2004 06.2004 EUR 23,00 15,00 44,00
Kunde1 Nürnberg 01.2004 02.2004 06.2004 EUR 43,00 45,00 44,00 Kunde2 Neumarkt / OPf 01.2004 02.2004 06.2004 EUR 13,00 25,00 14,00 .... die neue Excel-Tabelle soll dann folgendermaßen aussehen
Delphi-Quellcode:
1.Spalte Kunden Betriebssitz Währung Januar Februar März April Mai Juni ...
frei Kunde1 Neumarkt / OPf EUR 23,00 15,00 0,00 0,00 0,00 44,00 Kunde1 Nürnberg EUR 43,00 45,00 0,00 0,00 0,00 44,00 Kunde2 Neumarkt / OPf EUR 13,00 25,00 0,00 0,00 0,00 14,00 ... Hab jetz schon ewig rumprobiert, aber ich kriegs einfach nicht hin. Eine Lösung wäre auch, die Quell-Datei als txt zu speichern oder in ein StringGrid zu laden. Des hätt ich alles schon. Ich hab ein Problem mit der Schleife, die ich dafür ja wohl auf jeden Fall benötige. Keine Ahnung wie ich das anstellen soll. Problem 1: es können unterschiedliche Monate Daten enthalten. Problem 2: nach jedem Kunden soll eine Lehrzeile sein Ich kann auch gerne die beiden Dateien als xls hochladen |
Re: Daten in Excel-Zellen verschieben
Ich pack gleich nochmal meinen Code dazu, was ich bisher so rumprobiert hab
Delphi-Quellcode:
procedure TForm1.zielclick(Sender: TObject);
var name : string; regist : integer; i,r,c,s,d : integer; begin // zieht sich Dateinamen aus edt_dateiname und speichert Namen in Variable name name := edt_dateiname2.Text; // zieht sich Register-Nr aus edt_register und speichert Nummer in Variable regist regist := strtoint(edt_register0.text); // Excel öffnen lcid := GetUserDefaultLCID; excel := TExcelApplication.Create(Form1); excel.Connect; // Exceldatei laden wb := excel.Workbooks.Open(name, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, lcid); // erstes Worksheet auswählen ws := wb.Sheets[regist] as _WorkSheet; excel.DisplayAlerts[GetUserDefaultLCID] := false; // optional for s:=0 to ws.Rows.count-1 do for d:=0 to ws.Columns.Count-1 do for r:=0 to Stringgrid1.RowCount -1 do For c:=0 to StringGrid1.ColCount-1 do begin // ws.Cells.Item[d +1, s +1].value := StringGrid1.Cells[c,r], if StringGrid1.cells[4,r] = '01.2004' then ShowMessage('test'); showMessage(stringGrid1.cells[6,2]); end; //c,r // Speichern der aktuellen Datei excel.ActiveWorkbook.Save(GetUserDefaultLCID); excel.DisplayAlerts[GetUserDefaultLCID] := false; // optional end; |
Re: Daten in Excel-Zellen verschieben
HI,
Du könntest auch die Daten in eine 2. Excel Tabelle schreiben. Dürfte nicht so schwierig sein. |
Re: Daten in Excel-Zellen verschieben
jep, aber ich weiß nicht, wie ich die Schleife bauen soll, dass er mir z. B. immer bei einem neuen Kunden immer ne Leerzeile macht und dass die Beträge wirklich unter dem richtigem Monat stehen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz