2016-05-19 11 views
0

Ich möchte eine Anpassung an eine Zelle in Excel vornehmen, ohne die Anwendung dafür zu öffnen. Ich möchte das mit Jenkins machen, damit ich (Regressions-) Tests automatisieren kann. (Ist das überhaupt möglich?)Excel Tabellenkalkulationszellen durch die Verwendung von Jenkins ändern

Wie Sie in dem Bild sehen können, das ich anbrachte, sollte ich einen "N" -Wert in Excel zu einem "Y" -Wert ändern oder umgekehrt. Ich möchte dies durch die Benutzeroberfläche von Jenkins erreichen. Ich habe so etwas wie einen parametrisierten Build gehört, aber ich kann keine Webseite oder irgendwas, das mir mehr über dieses Thema erzählen kann, in die Hände bekommen.

Was ich erreichen möchte ist so etwas wie dieses:

  1. öffnen Jenkins
  2. Select Job
  3. In diesem Job wählen „Testdata-A (oder die eindeutige Nummer 1)
  4. auch„ Testdaten A1” +“Testdata A2” (oder die eindeutige Nummer 1,1 & 1,2)
  5. Speicher
  6. Run Job
  7. Jenkins nimmt meine Auswahl, öffnet Excel im Hintergrund und macht die Änderungen In Excel durch die Auswahl habe ich die UI von Jenkins wahr gemacht.
  8. Mit anderen Worten: durch Auswahl von "Testdaten A" in Jenkins und Ausführen des Jobs muss das "N" in C2 in ein "Y" geändert werden. Auch für andere Auswahlen wie die in cel C3 & C4
  9. möchte ich dies für mehr als 1x tun. Die Idee ist, Excel zu verwenden, wo alle Zellen bereits ein "N" haben und sich nur zu einem "Y" ändern, wenn ich dieses wahre Jenkins wähle.

Ich entschuldige mich für mein schlechtes Englisch. Ich hoffe ich habe klar beschrieben was ich will. Bitte fügen Sie einen Kommentar hinzu, wenn Sie weitere Erläuterungen benötigen. Vielen Dank im Voraus

Excel Testdata

Antwort

0

Sie finden es einfacher zu haben Jenkins ein vbscript auszuführen, greift auf und aktualisiert die Dateien nach Bedarf. Sie können die relevanten Parameter an ein Skript übergeben, die dann etwas entlang der Linien von tun:

Dim xlApp : Set xlApp = CreateObject("Excel.Application") 
Dim wkBk : Set wkBk = xlApp.Workbooks.Open("pathToWorkBookHere") 
Dim wSheet : Set wSheet = wkBk.WorkSheets("yourSheetNameHere") 

With wSheet.Range("C3") 
    .Value = Wscript.Arguments(0) ' This could be a Y or an N, whatever you passed into the script 
End With 

Sie leicht, dass bis über mehrere Arbeitsmappen/Arbeitsblätter/Zellen je nach Bedarf skalieren können.

+0

Danke Dave für Ihren Vorschlag. Aber bedeutet das, dass ich ständig mein VBscript ändern muss, um meine Datei zu aktualisieren? Weil das etwas ist, was ich vermeiden möchte. –

+0

Nein, Sie können Parameter in das Skript in der Ausführungszeile des Jenkins-Job-Setups eingeben (Schritte 3 und 4 in Ihrer ursprünglichen Liste). Sie werden im Skript mit 'Wscript.Arguments (Parameternummer, indexiert von 0)' referenziert. Sie können den Code so schreiben, wie Sie ihn benötigen, und alles, was Sie übergeben möchten, wie den Namen, den Pfad, den Blattnamen oder den Namen der Arbeitsmappe, wie Sie möchten, parametrisieren. – Dave

+0

Also, wenn ich mich nicht irre, muss ich ständig meine Parameter CODE in Jenkins Ausführungszeile ändern, um zu erreichen, was ich will. Ich muss das vielleicht 20-30x pro Tag tun. Und die Zellenauswahl kann zwischen C1 und C25 variieren. ist es nicht zeitaufwendig, wenn ich das immer und immer wieder machen muss. weil das etwas ist, was ich vermeiden möchte. Ich möchte Zeit gewinnen, indem ich es so mache –