Ich bekomme hier ständig ein
The request is blocked.
07LulYwAAAAB9lvE7d/1JSYWz88EfrjsFQkVSMzBFREdFMDQwNwA0ZjkwZmU2OS02MjdhLTQwZTEtYjA3My1lNGVhZDVkOGU2NTg=
und kann den code nicht reinstellen.
Hallo zusammen,
ich versuche hier aus einer csv daten in eine bestehende xlsx Datei zu importieren, leider geht dies nur sehr langsam.
Könnte mir ggf. jemand einen tipp geben wie ich das beschleunigen kann, denn es handelt sich um ca. 5000 Datensätze.
Ich habe es versucht mit ca. 70 Datensätze und das dauet ca. 3-4 Minuten, dies ist einfach zu langsam.
Es gibt bestimmt noch einen besseren weg, als den ich hier gecoded habe, oder?
$csvFile = Get-Content -path"$TempPath\$TempCSVFileName"
$Excel = new-object -comobject Excel.application
$Excel.visible =$false
$Excel.DisplayAlerts =$false
$WorkBook = $Excel.WorkBooks.open($ResultFile)
ForEach ($WorkSheetin$WorkBook.WorkSheets) {
If ($WorkSheet.Name -like'Import') {
$Sheet =
$WorkSheet
break
} # End If
} # end ForEach
$Spalte = 1
$Zeile =
2
$Counter = 0
foreach ($CSVdatain$csvFile){
if (!($CSVdata -eq'') -and (!($CSVdata -like'"Anrede";"Name";"Vorname";"Firma";"Strasse";"HSNr";"PLZ";"Ort";"Geboren"'))){
$VARAnrede = ($CSVdata -split';')[0] -replace'"',''
$VARName = ($CSVdata -split';')[1] -replace'"',''
$VARVorname = ($CSVdata -split';')[2] -replace'"',''
$VARFirma = ($CSVdata -split';')[3] -replace'"',''
$VARStrasse = ($CSVdata -split';')[4] -replace'"',''
$VARHausNr = ($CSVdata -split';')[5] -replace'"',''
$VARPLZ = ($CSVdata -split';')[6] -replace'"',''
$VAROrt = ($CSVdata -split';')[7] -replace'"',''
$VARGeburtsdatum = ($CSVdata -split';')[8] -replace'"',''
$Counter+=1
if (!($counter -gt0)){
write-host"Datensatz 1 von $($csvFile.count-1) eingefügt" -ForegroundColor Green
}else{
write-host"Datensatz $Counter von$($csvFile.count-1) eingefügt" -ForegroundColor Green
}
}
$Sheet.Cells.Item($Zeile,1).value2 = $VARAnrede
$Sheet.Cells.Item($Zeile,2).value2 = $VARName
$Sheet.Cells.Item($Zeile,3).value2 = $VARVorname
$Sheet.Cells.Item($Zeile,4).value2 = $VARFirma
$Sheet.Cells.Item($Zeile,5).value2 = $VARStrasse
$Sheet.Cells.Item($Zeile,6).value2 = $VARHausNr
$Sheet.Cells.Item($Zeile,7).value2 = $VARPLZ
$Sheet.Cells.Item($Zeile,8).value2 = $VAROrt
$Sheet.Cells.Item($Zeile,9).value2 = $VARGeburtsdatum
$Zeile+=
1
}
#$WorkBook.Save()
$WorkBook.SaveAs($ResultFile,51)
$WorkBook.Saved =$true
$WorkBook.Close()
$excel.Quit();
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) |Out-Null
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
Komisch so ging es mit dem Code.
Gruss
Markus