Powershell - Bestimmte Daten aus Excel in neue Excel-Dateien in letzter freien Zeile schreiben und speichern
Hallo zusammen,
ich stocke bei folgender Aufgabe.
Ich habe eine Textdatei welche ich per Powershell in eine vorhandenes Excel-Sheet in der letzten freien Zeile anzuhängen und wieder zu speichern
Folgender Schnipsel mach es schon sehr gut, aber die Zelle A2 ist halt konstant.
Kann mir da jemand vielleicht weiterhelfen?
Bin kompletter Newbie?
ich stocke bei folgender Aufgabe.
Ich habe eine Textdatei welche ich per Powershell in eine vorhandenes Excel-Sheet in der letzten freien Zeile anzuhängen und wieder zu speichern
Folgender Schnipsel mach es schon sehr gut, aber die Zelle A2 ist halt konstant.
#Define locations and delimiter
$csv = "C:\Users\Hannes\Desktop\200319_10000_ProjektDaten_TXT_Datei" +".csv" #Location of the source file
$xlsx = "C:\Users\Hannes\Desktop\CSV_TEST\Logs\Projektliste_Gesamt_Neu" +".xlsx" #Desired location of output
$delimiter = ";" #Specify the delimiter used in the file
# Create a new Excel workbook with one empty sheet
$excel = New-Object -ComObject excel.application
#$workbook = $excel.Workbooks.Add(1)
$workbook = $excel.Workbooks.open($xlsx)
$worksheet = $workbook.worksheets.Item(1)
# Build the QueryTables.Add command and reformat the data
$TxtConnector = ("TEXT;" + $csv)
$Connector = $worksheet.QueryTables.add($TxtConnector,$worksheet.Range("A2"))
$query = $worksheet.QueryTables.item($Connector.name)
$query.TextFileOtherDelimiter = $delimiter
$query.TextFileParseType = 1
$query.TextFileColumnDataTypes = ,1 * $worksheet.Cells.Columns.Count
$query.AdjustColumnWidth = 1
# Execute & delete the import query
$query.Refresh()
$query.Delete()
# Save & close the Workbook as XLSX.
$excel.DisplayAlerts = $False
$Workbook.SaveAs($xlsx,51)
$excel.Quit()
Kann mir da jemand vielleicht weiterhelfen?
Bin kompletter Newbie?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 559029
Url: https://administrator.de/forum/powershell-bestimmte-daten-aus-excel-in-neue-excel-dateien-in-letzter-freien-zeile-schreiben-und-speichern-559029.html
Ausgedruckt am: 22.04.2025 um 14:04 Uhr
3 Kommentare
Neuester Kommentar
Moin,
Lüch mich nich an!
Das sieht doch schon ganz ordentlich aus. Wenn Du jetzt noch bitte auf "Bearbeiten" unter "Mehr..." klickst und < code> und < /code> vor und nach Deinem Code einfügst, wäre es schon fast perfekt. 
Was Du brauchst, ist die Eigenschaft usedrange. Auf die Schnelle habe ich nichts für Powershell gefunden. Aber die Seite sollte weiterhelfen. Guck Dir halt die Zeilen mit dem Zugriff auf die Eigenschaft an.
https://www.wallstreetmojo.com/vba-usedrange/
<edit>Mir ist gerade aufgefallen, dass da beim Rausfahren der Maus einmal eine Werbung aufgeht. Ist aber trotzdem gut erklärt. Sorry dafür.</edit>
hth
Erik
Lüch mich nich an!
Was Du brauchst, ist die Eigenschaft usedrange. Auf die Schnelle habe ich nichts für Powershell gefunden. Aber die Seite sollte weiterhelfen. Guck Dir halt die Zeilen mit dem Zugriff auf die Eigenschaft an.
https://www.wallstreetmojo.com/vba-usedrange/
<edit>Mir ist gerade aufgefallen, dass da beim Rausfahren der Maus einmal eine Werbung aufgeht. Ist aber trotzdem gut erklärt. Sorry dafür.</edit>
hth
Erik
Zitat von @blueeyedmonster:
Ich habe diesen Script leider nur wo gefunden und für mich angepasst. Werde mir aber deine Seite mal ansehen.
Ich habe diesen Script leider nur wo gefunden und für mich angepasst. Werde mir aber deine Seite mal ansehen.
Achso.
Ist den Powershell gleich mit VBA?
Der Zugriff auf Objekteigenschaften und Methoden ja. In Deinem Code (danke für die Tags) ist
$worksheet
$worksheet.usedrange
$worksheet.usedrange.rows
$worksheet.usedrange.rows.count
$worksheet.usedrange.rows.count + 1
So funktioniert das Prinzip. Das Objekt bzw. genauer die Objekteigenschaften haben aber noch sehr interessante Methoden. Es lohnt sich also, das durchzulesen.
hth
Erik