feuerstein08
Goto Top

Mit Powershell 1.0 über OLEDB geänderte Daten in XLSX zurück schreiben

Ich weiß nicht, ob das der "sinnvollste" Weg ist, aber es ist ein Anfang ...

Hallo zusammen,

ich möchte eine größere Excel Datei einlesen Inhalte überprüfen, ggf. ändern und dann in die XLS* zurückschreiben.
Nachdem ich nun eine Weile geGOOGLED habe, bin ich an diesem Punkt.

Ich kann eine XLSX Tabelle mittels OLEDB einlesen und Wert ändern, aber wie bekomme ich den Wert in die Tabelle zurückgeschrieben?

So sieht meine kleine Beispieltabelle aus:
bd296cfd4f05033d2fed672c268194e7

Und hier der Code soweit:
cls

#Pfad zur XLSX
$filepath = "C:\1\test.xlsx"  
#Connection String für Excel 2007:
$connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=`"$filepath`";Extended Properties=`"Excel 12.0 Xml;HDR=YES`";"  

$qry = 'select * from [Beispiel$]'  

#######################
function Get-ExcelData
{
     param($connString, $qry='select * from [sheet1$]')  
 
    $conn = new-object System.Data.OleDb.OleDbConnection($connString)
    $conn.open()
    $cmd = new-object System.Data.OleDb.OleDbCommand($qry,$conn) 
    $da = new-object System.Data.OleDb.OleDbDataAdapter($cmd) 
    $dt = new-object System.Data.dataTable 
    [void]$da.fill($dt)
	
    $conn.close()
    $dt
 
} #Get-ExcelData
 
#######################
function Write-DataToXLSX
{ 
???
 
}# Write-DataTableToXLSX
 
#######################
$dt = Get-ExcelData $connString $qry
$dt[1].Vorname
$dt[1].Vorname = "Maus"  
$dt[1].Vorname

Ich habe also einen Vornamen geändert - und wie bekomme ich das wieder in meine Tabelle und wie speichere ich die Tabelle dann?
Da ich in über 5000 Datensätzen nach xxx Usern suchen muss, Änderungen vornehme und dann wieder zurückschreiben muss, ist eine performante Bearbeitung notwendig. Ist das der beste Weg?

Vielen Dank für jede Hilfe!
Feuerstein08

Content-Key: 141381

Url: https://administrator.de/contentid/141381

Ausgedruckt am: 29.03.2024 um 15:03 Uhr