Powershell .csv export und excel import
Hallo
Ich möchte gerne aus einer bestehenden CSV Daten mit Powershell Exportieren und diesen Daten einzeln einer Variabel zuweisen um diese werde verwenden zu können.
Das habe ich bereits getestet:
$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';'
$Users | Select-Object Check
Mein hauptskript hat über 1500 Zeilen Code und ich brauche nur noch diese Funktion.
Ich muss Daten aus dem CSV Auslesen, diesen Daten einer Variabel zuteilen das ich diese einzeln in eine Excel mit dem Befehl $Checkliste1.Cells.Item(1,2) = $var_1
$var_1 sollte eben der Wert aus der CSV sein
Danke im voraus
Ich möchte gerne aus einer bestehenden CSV Daten mit Powershell Exportieren und diesen Daten einzeln einer Variabel zuweisen um diese werde verwenden zu können.
Das habe ich bereits getestet:
$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';'
$Users | Select-Object Check
Mein hauptskript hat über 1500 Zeilen Code und ich brauche nur noch diese Funktion.
Ich muss Daten aus dem CSV Auslesen, diesen Daten einer Variabel zuteilen das ich diese einzeln in eine Excel mit dem Befehl $Checkliste1.Cells.Item(1,2) = $var_1
$var_1 sollte eben der Wert aus der CSV sein
Danke im voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 264655
Url: https://administrator.de/forum/powershell-csv-export-und-excel-import-264655.html
Ausgedruckt am: 23.12.2024 um 07:12 Uhr
12 Kommentare
Neuester Kommentar
Hallo playmen,
das ist kein Problem, welchen Datensatz benötigst du denn aus deiner CSV-Datei ?
Am besten du postest einen kleinen Ausschnitt deiner CSV-Datei mit Überschriften
(Bitte nutze Code-Tags für deinen Quellcode:
Beispiel
Grüße Uwe
das ist kein Problem, welchen Datensatz benötigst du denn aus deiner CSV-Datei ?
Am besten du postest einen kleinen Ausschnitt deiner CSV-Datei mit Überschriften
(Bitte nutze Code-Tags für deinen Quellcode:
<code> Quellcode </code>
.)Beispiel
$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';'
$var_1 = $Users | ?{$_.Username -eq 'Max Muster'} | select -ExpandProperty Check
Zitat von @playmen:
Ich benötige aus der CSV Datei immer die 1. und die 2. Spalte.
In der 1. steht Prüfkriterium und in der 2. Status(soll)
Welche Spaltennamen haben diese Spalten ? Und brauchst du diese von allen Datensätzen oder nur bestimmten ?Ich benötige aus der CSV Datei immer die 1. und die 2. Spalte.
In der 1. steht Prüfkriterium und in der 2. Status(soll)
Wie soll die Variable als Ergebnis aussehen Array/ String ?
Eine Excel-Datei mit den beiden Spalten kannst du direkt so erzeugen
Die kannst du dann direkt in Excel öffnen.
Ansonsten hast du nicht genug Infos geliefert in welcher Umgebung du programmierst / GUI ?. Es gibt hier so viele Möglichkeiten .... Denk immer daran das wir hier nicht vor deinem Script sitzen, es also nicht kennen !
$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';'
$Users | select "Pruefkriterium","Soll (Status)" | export-csv "C:\test.csv" -NoType -Delimiter ";" -Encoding UTF8
Ansonsten hast du nicht genug Infos geliefert in welcher Umgebung du programmierst / GUI ?. Es gibt hier so viele Möglichkeiten .... Denk immer daran das wir hier nicht vor deinem Script sitzen, es also nicht kennen !
Wenn du nicht weißt wie man eine CSV-Datei Zeile für Zeile mit einer foreach-Schleife durchläuft, das geht so
hier wird für jede Zeile deiner CSV-Datei der Wert aus der jeweiligen Spalte ausgegeben. (Die Spaltennamen musst du hier natürlich anpassen)
$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';'
$users | %{
$_.Spaltenname1
$_.Spaltenname2
}
Oh man, die Bilder bringen mir hier gar nichts. Beschreibe bitte mal vernünftig deine Ausgangslage mit zwei Original-Zeilen (mit der Überschriftenzeile) deiner CSV-Datei und was du "wie" "wo" gespeichert haben willst!! Das ist essentiell um dir hier effektiv helfen zu können. Denn es macht einen riesen Unterschied ob die Quelldaten eine Überschriftenzeile haben oder eben nicht ....
Wir sitzen hier ja nicht vor deinem Script !! Danke.
Für den Fall das deine CSV-Datei keine Überschriftenzeile besitzt, machst du dies so:
Wir sitzen hier ja nicht vor deinem Script !! Danke.
Für den Fall das deine CSV-Datei keine Überschriftenzeile besitzt, machst du dies so:
$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';' -Header "1","2"
$Users | select "1","2" | export-csv "C:\test.csv" -NoType -Delimiter ";" -Encoding UTF8
Das ist dann meine Interpretation deines Vorhabens
(du hast ja nicht geschrieben ob alle Daten in eine Zelle sollen, daher bin ich davon ausgegangen das die Daten jeweils in eine neue Zeile kommen)
Willst du nicht Zeile für Zeile schreiben kannst du die Daten auch in ein zweidimensionales Array konvertieren und einem Range direkt zuweisen. Wie das geht kannst du hier nachlesen https://powertoe.wordpress.com/2010/11/05/how-to-get-data-into-an-excel- ...
(du hast ja nicht geschrieben ob alle Daten in eine Zelle sollen, daher bin ich davon ausgegangen das die Daten jeweils in eine neue Zeile kommen)
$Users = Import-Csv "C:\Temp\textfile.csv" -Delimiter ';' -Header "1","2"
for($i=0;$i -lt $Users.Length;$i++){
$Checkliste.Cells.Item((1+$i),1).Value2 = $Users[$i].'1'
$Checkliste.Cells.Item((1+$)i,2).Value2 = $Users[$i].'2'
}
Ich wusste ja nicht in welcher Zeile der Excel-Tabelle du die Daten hineinschreiben willst, das bleibt dann dir überlassen ... hatte mich nur an deinem Bildchen überlassen
p.s. Wie du Bilder deinem Beitrag hinzufügst, kannst du in der Formatierungs-FAQ nachlesen.
p.s. Wie du Bilder deinem Beitrag hinzufügst, kannst du in der Formatierungs-FAQ nachlesen.