Sooo
hab schon mal weiter gemacht!
Sieht nun folgendermaßen aus.
Spoiler anzeigen
------------------------------------------------------------------------------
; CreateHtmlStructure
; ------------------------------------------------------------------------------
#Region includes
#include <Array.au3>
#include <Excel_alt.au3>
#EndRegion
#Region declaration
; Abfrage der Excelposition
;Local $message = "Bitte Exceldatei in dem Stammverzeichnis (gespiegelter Ordner) auswählen."
;Local $var = FileOpenDialog($message, @WindowsDir & "", "Laufzettel im Excelformat (*.xls;*.xlsx)", 1 + 4)
;If @error Then
; MsgBox(4096, "", "Keine Datei(en) ausgewählt")
;Else
; $var = StringReplace($var, "|", @CRLF)
; MsgBox(4096, "", "Es wurde(n) " & $var & " ausgewählt")
;EndIf
Local $pfad = "/frericks/scripttest/" ; Veröffentlich unterhalb Pad auf Webserver
Local $sFile = @ScriptDir & "\laufzettel.xlsx" ; Pfad zur Excel-Datei
Local $sDirPath = @ScriptDir & "" ; Pfad des Verzeichnisbaum (mit "" am Ende = Absicht)
Local $sConCat = "=>" & $pfad ;für den Inhalt der Steuerdateien
Local $genmenu_praefix ="1=>"
Local $sHtml1 = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"' & @CRLF & '"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' & @CRLF & '<html xmlns="http://www.w3.org/1999/xhtml">' & @CRLF & '<head>' & @CRLF & '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />' & @CRLF & @TAB & '<title>'
Local $sHtml2 = '</title>' & @CRLF &'</head>' & @CRLF & '<body>' & @CRLF & @TAB & '<a href="'
Local $sHtml3 = '">'
Local $sHtml4 = '</a>' & @CRLF & '</body>' & @CRLF & '</html>'
Local $sHTML5 ='<img src="http://lehrerfortbildung-bw.de/pix/weiter" alt="weiter" /> <a href="'
#EndRegion
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#Region excel
$oExcel = _ExcelBookOpen( $sFile ) ; Excel-Datei öffnen
If $oExcel = 0 Or @error = 2 Then
MsgBox( 16, "Error", "Die angegebene Datei existiert nicht!" )
Exit
EndIf
$aExcelContent = _ExcelReadSheetToArray( $oExcel, 2, 1 ) ; Excel-Datei auslesen
[/autoit] [autoit][/autoit] [autoit]; debugging
; _ArrayDisplay( $aExcelContent )
#EndRegion
#Region Verzeichnisstruktur und Steuerdateien anlegen
; Schleife die bis zur letzten Zeile das 2D-Array durchläuft
; und die Verzeichnisebenen ermittelt und anlegt
For $i = 1 To UBound( $aExcelContent, 1 ) - 1
; Verarbeitung für Ebene 1
If $aExcelContent[$i][1] <> "" Then
$sE1 = $aExcelContent[$i][5] & "" ; Verzeichnisname Ebene 1 zwischenspeichern
; Verzeichnis erstellen
If DirCreate( $sDirPath & $aExcelContent[$i][5] & "" ) = 0 Then
MsgBox( 16, "Error", "Verzeichnis " & $sDirPath & $aExcelContent[$i][5] & _
" konnte nicht angelegt werden." )
Exit
EndIf
; genmenu.txt erstellen und beschreiben
[/autoit] [autoit][/autoit] [autoit]FileClose( FileWrite( FileOpen( $sDirPath & "genmenu.txt", 1 + 8 ), $genmenu_praefix & $aExcelContent[$i][1] & $sConCat & _
StringReplace( $sE1, "", "/" ) & @CRLF ) )
; helpi.txt erstellen und beschreiben
[/autoit] [autoit][/autoit] [autoit]FileClose( FileWrite( FileOpen( $sDirPath & "helpi.html", 1 + 8 ), $sHTML5 & $pfad & _
StringReplace( $sE1, "", "/" ) & '">'& $aExcelContent[$i][1] & '</a><br />' & @CRLF ) )
; Datei "index.html" mit entsprechenden Titel anlegen und einen LINK zur Originaldatei zum Download im Body erzeugen.
[/autoit] [autoit][/autoit] [autoit]FileClose( FileWrite( FileOpen( $sDirPath & $aExcelContent[$i][5] & "\index.html", 2 ), _
$sHtml1 & $aExcelContent[$i][1] & $sHtml2 & "http://www.google.de" & $sHtml3 & $aExcelContent[$i][6] & $sHtml4 ) )
; debugging
; MsgBox( "", "Ebene 1 - index.html", $sHtml1 & $aExcelContent[$i][1] & $sHtml2 & _
; "http://www.google.de" & $sHtml3 & $aExcelContent[$i][6] & $sHtml4 )
EndIf
; Verarbeitung für Ebene 2
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]If $aExcelContent[$i][2] <> "" Then
$sE2 = $aExcelContent[$i][5] & "" ;Verzeichnisname Ebene 2 zwischenspeichern
; Verzeichnis erstellen
If DirCreate( $sDirPath & $sE1 & $aExcelContent[$i][5] & "" ) = 0 Then
MsgBox( 16, "Error", "Verzeichnis " & $sDirPath & $sE1 & $aExcelContent[$i][5] & _
" konnte nicht angelegt werden." )
Exit
EndIf
; hmenu.txt erstellen und beschreiben
[/autoit] [autoit][/autoit] [autoit]FileClose( FileWrite( FileOpen( $sDirPath & $sE1 & "\hmenu.txt", 1 + 8 ), $aExcelContent[$i][2] & $sConCat & _
StringReplace( $sE1 & $sE2, "", "/" ) & @CRLF ) )
; helpi.txt erstellen und beschreiben
[/autoit] [autoit][/autoit] [autoit]FileClose( FileWrite( FileOpen( $sDirPath & $sE1 & "\helpi.html", 1 + 8 ), $sHTML5 & $pfad & _
StringReplace($sE1 & $sE2, "", "/" ) & '">'& $aExcelContent[$i][2] & '</a><br />' & @CRLF ) )
; Datei "index.html" mit entsprechenden Titel anlegen und einen LINK zur Originaldatei zum Download im Body erzeugen.
[/autoit] [autoit][/autoit] [autoit]FileClose( FileWrite( FileOpen( $sDirPath & $sE1 & $aExcelContent[$i][5] & "\index.html", 2 ), _
$sHtml1 & $aExcelContent[$i][2] & $sHtml2 & "http://www.google.de" & $sHtml3 & $aExcelContent[$i][6] & $sHtml4 ) )
; debugging
; MsgBox( "", "Ebene 2 - index.html", $sHtml1 & $aExcelContent[$i][2] & $sHtml2 & _
; "http://www.google.de" & $sHtml3 & $aExcelContent[$i][6] & $sHtml4 )
EndIf
; Verarbeitung für Ebene 3
[/autoit] [autoit][/autoit] [autoit]If $aExcelContent[$i][3] <> "" Then
$sE3 = $aExcelContent[$i][5] & "" ; Verzeichnisname Ebene 3 zwischenspeichern
; Verzeichnis erstellen
[/autoit] [autoit][/autoit] [autoit]If DirCreate( $sDirPath & $sE1 & $sE2 & $aExcelContent[$i][5] & "" ) = 0 Then
MsgBox( 16, "Error", "Verzeichnis " & $sDirPath & $sE1 & $sE2 & $aExcelContent[$i][5] & _
" konnte nicht angelegt werden." )
Exit
EndIf
; hmenu2.txt erstellen und beschreiben
[/autoit] [autoit][/autoit] [autoit]FileClose( FileWrite( FileOpen( $sDirPath & $sE1 & $sE2 & "\hmenu2.txt", 1 + 8 ), $aExcelContent[$i][3] & $sConCat & _
StringReplace( $sE1 & $sE2 & $sE3, "", "/" ) & @CRLF ) )
; helpi.txt erstellen und beschreiben
[/autoit] [autoit][/autoit] [autoit]FileClose( FileWrite( FileOpen( $sDirPath & $sE1 & $sE2 & "\helpi.html", 1 + 8 ), $sHTML5 & $pfad & _
StringReplace( $sE1 & $sE2 & $sE3, "", "/" ) & '">'& $aExcelContent[$i][3] & '</a><br />' & @CRLF ) )
; Datei "index.html" mit entsprechenden Titel anlegen und einen LINK zur Originaldatei zum Download im Body erzeugen.
FileClose( FileWrite( FileOpen( $sDirPath & $sE1 & $sE2 & $aExcelContent[$i][5] & "\index.html", 2 ), _
$sHtml1 & $aExcelContent[$i][3] & $sHtml2 & "http://www.google.de" & $sHtml3 & $aExcelContent[$i][6] & $sHtml4 ) )
; debugging
; MsgBox( "", "Ebene 3 - index.html", $sHtml1 & $aExcelContent[$i][3] & $sHtml2 & _
; "http://www.google.de" & $sHtml3 & $aExcelContent[$i][6] & $sHtml4 )
EndIf
; Verarbeitung für Ebene 4
[/autoit] [autoit][/autoit] [autoit]If $aExcelContent[$i][4] <> "" Then
$sE4 = $aExcelContent[$i][5] & "" ; Verzeichnisname Ebene 4 zwischenspeichern
; Verzeichnis erstellen
[/autoit] [autoit][/autoit] [autoit]If DirCreate( $sDirPath & $sE1 & $sE2 & $sE3 & $aExcelContent[$i][5] & "" ) = 0 Then
MsgBox( 16, "Error", "Verzeichnis " & $sDirPath & $sE1 & $sE2 & $sE3 & $aExcelContent[$i][5] & _
" konnte nicht angelegt werden." )
Exit
EndIf
; hmenu3.txt erstellen und beschreiben
[/autoit] [autoit][/autoit] [autoit]FileClose( FileWrite( FileOpen( $sDirPath & $sE1 & $sE2 & $sE3 & "\hmenu3.txt", 1 + 8 ), $aExcelContent[$i][4] & $sConCat & _
StringReplace( $sE1 & $sE2 & $sE3 & $sE4, "", "/" ) & @CRLF ) )
; helpi.txt erstellen und beschreiben
[/autoit] [autoit][/autoit] [autoit]FileClose( FileWrite( FileOpen( $sDirPath & $sE1 & $sE2 & $sE3 & "\helpi.html", 1 + 8 ), $sHTML5 & $pfad & _
StringReplace( $sE1 & $sE2 & $sE3 & $sE4, "", "/" ) & '">'& $aExcelContent[$i][4] & '</a><br />' & @CRLF ) )
; Datei "index.html" mit entsprechenden Titel anlegen und einen LINK zur Originaldatei zum Download im Body erzeugen.
[/autoit] [autoit][/autoit] [autoit]FileClose( FileWrite( FileOpen( $sDirPath & $sE1 & $sE2 & $sE3 & $aExcelContent[$i][5] & "\index.html", 2 ), _
$sHtml1 & $aExcelContent[$i][4] & $sHtml2 & "http://www.google.de" & $sHtml3 & $aExcelContent[$i][6] & $sHtml4 ) )
; debugging
; MsgBox( "", "Ebene 4 - index.html", $sHtml1 & $aExcelContent[$i][4] & $sHtml2 & _
; "http://www.google.de" & $sHtml3 & $aExcelContent[$i][6] & $sHtml4 )
EndIf
Next
_ExcelBookClose( $oExcel ) ;Schließen der Excel-Datei
#EndRegion
Ich hab auch mal ein realistischeres Excelfile dazugelegt.
Ich scheitere gerade an folgendem Problem.
Nun soll auf jeder Seite ein Link zur nächsten Seite und ein Link zur vorherigen Seite angebracht werden.
Auf der 2ten Seite sähe das so aus
zurück zu Title1 -- weiter zu Title 3
Das Problem ist das man ja evtl. ebenenübergreifend verweisen muss.
Das bedeutet wenn ich vom Ordnerebene1 auf Ordnerebene2 verweise muss ich ja eine Ebene höher verweisen und umgekehrt natürlich auch.
Außerdem habe ich in Excel die Spalte Dateien eröffnet. Dort liegt die Pfadinformation zur ensprechenden Datei
Dies in folgender Form.
Name|Pfad (also: getrennt durch das Sonderzeichen '|')
Aus diesen Informationen sollte dann der Downloadlink gebildet werden:
Name: herunterladen (herunterladen ist dann entsprechend mit dem Pfad verlinkt)
Ich denke dann ist auch genug automatisiert und schon viel erreicht.
Vielen Dank für Eure Anregungen.
Exceldatei und Script habe ich angefügt.
Gruß
Rochus