Read Excel
Dieses Script habe ich aus der Anforderung heraus geschrieben, die SW-Inventur von SMS mit dem Inhalt eines DFS-Share zu vergleichen.
Die Inventur von SMS wird aus einem gelieferten Excelsheet gelesen und mit dem Inhalt einer CSV-Datei verglichen.
Zum guten Schluss wird in eine dritte Datei das Ergebnis geschrieben.
option explicit'on error resume nextDim excin, exc_wb, introw, wshell, fso, strg, zeile, bFoundDim csvin, csvout, iSet wshell = WScript.CreateObject("Wscript.shell")Set FSO = WScript.CreateObject("Scripting.FileSystemObject")Set excin = CreateObject("Excel.Application")Set exc_wb = excin.Workbooks.Open ("D:Packages and Programs.xls")set csvout = fso.opentextfile("D:schnittmenge.csv",2,True)intRow = 2i=0'Lies das Excel-Sheet (in der Spalte 13)bis zum Schlussdo while not (excin.Cells(intRow,1).Value="")strg = excin.Cells(intRow, 13).Value'Extrahiere den benötigten String (durch Replace)strg=Replace(strg, " /SMS" ,"")strg=Replace(strg, " /sms" ,"")'Vorbedingung für den Such-String ist das Wort "Deinstallationen"'Danach wird der Dateihandle für die CSV-Datei geöffnet if instr (strg,"_Deinstallationen") then set csvin = fso.opentextfile("D:dfs_share.csv",1)bFound = false 'Das ist richtig gut. Ein Returncode wird gesetztdo while not (csvin.AtEndOfStream)'Lies das korrespondierende CSV-File zeilenweisezeile=csvin.readline' Der aus dem Excel-Sheet gewonnene String wird jetzt formatiert' und in der CSV-Datei gesucht. Wenn gefunden, dann wird der ReturnCode positiv gesetzt' bFound also auf true gesetzt und aus dem inneren do-Loop gesprungen if instr (trim(lcase(zeile)),trim(lcase(strg))) thencsvout.writeline "SMS-Paket ist auf dem DFS-Share : " & strgbFound = trueexit doend ifloop'Da der Dateihandle jetzt am Ende der Datei steht, wird er geschlossen.csvin.Close'Ist bFound nicht gesetzt, also steht er noch auf "FALSE"'schreib die zweite Möglichkeit in das CSVif not bFound then csvout.writeline " SMS-Paket existiert nicht auf dem DFS-Share : " & strgend if end if intRow = intRow + 1 Loopexcin.Quitexcin.Workbooks.closemsgbox "Überprüfung abgeschlossen", 64, "Auswertung"