Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Bestimmte Werte aus CSV Datei automatisch in HTML Datei einfügen

Frage Entwicklung VB for Applications

Mitglied: Salektro

Salektro (Level 1) - Jetzt verbinden

23.01.2015, aktualisiert 24.01.2015, 1860 Aufrufe, 9 Kommentare

Guten Abend liebe Leute!
Ich bin neu hier im Forum und hoffe, dass mir trotzdem jemand helfen kann.
Leider habe ich von VBA bisher keine Ahnung.

Ich würde gerne mittels Excel/Calc aus CSV Dateien einzelne Werte in eine existierende HTML Datei schreiben lassen. Natürlich an eine bestimmte Stelle.

Die CSV Datei ist folgendermaßen aufgebaut:

Page,Device,Group,ItemID,Item,Value
Seite1,Gerät1,Gruppe1,257,Name1,Wert1
Seite2,Gerät2,Gruppe2,266,Name2,Wert2

Die HTML Datei ist so aufgebaut
<tbody>
<tr>
<td style="width: 381px;">#Name1</td>
<td style="width: 464px;">#Wert1<br>
</td>
</tr>
<tr>
<td style="width: 381px;">#Name2</td>
<td style="width: 464px;">#Wert2<br>
</td>
</tr>



Eingesetzt werden sollen NameX und WertX bei (und anstatt) #NameX und #WertX.
Die Auswahl was übertragen wird und was nicht, soll anhand der ItemID erfolgen (Es sind viele für mich uninteressante Daten darunter).
Im Grunde reicht mir auch Anhand der ItemID der jeweilige WertX, die #Name könnte ich auch fix in die HTML Datei schreiben, da diese fast immer gleich sind.
Da manchmal bestimmte ItemIDs vorhanden sind und manchmal auch nicht, wäre es natürlich besser NameX und WertX zu übertragen.

Schon im Vorraus vielen vielen Dank für eure Hilfe.

Viele Grüße
André
Mitglied: wiesi200
23.01.2015 um 18:01 Uhr
Hallo,

Kommt ein bisschen auf deine Umgebung an, aber ich würde das über PHP realisieren und die Webseite dynamisch aufbauen.
Bitte warten ..
Mitglied: Salektro
23.01.2015 um 18:23 Uhr
PHP kann ich leider auch nicht. Aber ich weiß auch nicht ob das so sinnvoll ist.
Ich habe das ja sehr abstrakt geschildert. Ich will aus einem Aida64 Systemprotokoll (CSV Format), jene Daten die ich will (also z.B. Angaben zum Arbeitsspeicher, aber nicht die MAC Adresse der Netzwerkkarte) in eine HTML Datei Schreiben lassen.* Den HTML Code dieser Tabelle kopiere ich dann wieder in eine CSV Datei, welche ich dann in unseren Online Shop importieren kann. Die fehlenden Informationen muss ich dann natürlich händisch ergänzen, aber da führt ohnehin kein Weg daran vorbei.
Die Tabelle ist dann die ausführliche Beschreibung (wird in eine Designvorlage eingesetzt).

Wenn Du, oder jemand anderes eine bessere Idee haben wie das umzusetzen ist, bin ich da natürlich offen.

*Ich dachte an eine vorhandene HTML Datei, weil ich dann die Formatierung evtl. leichter vornehmen kann. Ansonsten müsste man das natürlich in dem Skript machen. Aber ist vielleicht auch kein Problem. Müsste auch nicht unbedingt eine Tabelle sein.
Bitte warten ..
Mitglied: wiesi200
23.01.2015 um 18:48 Uhr
Gut PHP ist da nicht die beste Lösung.
Persönlich würd ich dann eher versuchen das direkt abzubilden.

Sprich direkt eine CSV Datei zu erstellen mit denen der Webshop was anfangen kann.
Aber da müsste man die Umgebung etwas besser kennen.
Bitte warten ..
Mitglied: colinardo
23.01.2015, aktualisiert um 19:11 Uhr
Hallo Andrè,
generiere dir doch dein HTML-File anhand der CSV-Datei dann musst du nicht immer die Platzhalter ersetzen und bis wesentlich flexibler.
Hier ein Beispiel mit Powershell:
Der Code lädt deine CSV-Datei erstellt anhand der Zeilen in der CSV-Datei jeweils eine HTML-Zeile speichert die Zeilen in einer Variablen und fügt diese Variable dann in ein HTML-Template ein. Das ganze dann als HTML ausgegeben, fertig.
Was du aus der CSV-Datei in die HTML-Datei übernehmen willst lässt sich ganz einfach mit Powershell ausfiltern da die CSV-Datei in Powershell als Objekt gehandhabt wird, da ist ein Filtern nach ItemID sehr leicht.
01.
# Pfad zur CSV Datei 
02.
$FILECSV = "C:\temp\test.csv" 
03.
# Ausgabepfad für HTML-File 
04.
$FILEHTMLOUT = "C:\temp\test_html.html" 
05.
 
06.
#CSV-Datei importieren 
07.
$csv = Import-csv $FILECSV -Delimiter "," 
08.
 
09.
$tablerows = @() 
10.
# Für jede Zeile in der CSV-Datei eine HTML-Zeile erstellen 
11.
$csv | %{ 
12.
    $tablerows += @" 
13.
<tr> 
14.
<td style="width: 381px;">$($_.Item)</td> 
15.
<td style="width: 464px;">$($_.Value)<br> 
16.
</td> 
17.
</tr> 
18.
"@ 
19.
20.
 
21.
# HTML Template mit erzeugten Zeilen erstellen 
22.
$htmltemplate = @" 
23.
<!DOCTYPE HTML> 
24.
<html> 
25.
<head> 
26.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
27.
<title>HTML Template</title> 
28.
</head> 
29.
<body> 
30.
<table border="1" width=""> 
31.
$tablerows 
32.
</table> 
33.
</body> 
34.
</html> 
35.
"@ 
36.
# HTML in Datei ausgeben 
37.
$htmltemplate | set-content $FILEHTMLOUT
Das ganze lässt sich natürlich auch mit VBA abbilden wenn du willst
Grüße Uwe
Bitte warten ..
Mitglied: Salektro
24.01.2015 um 14:24 Uhr
Hallo Uwe,
vielen Dank für deine Hilfe., das sieht schonmal ganz brauchbar aus. Ich muss jetzt nur noch schauen, wie ich Powershell Skripte unter Linux zum Laufen bekomme,
sonst muss ich das in meinem Virtualbox Windows XP machen. Damit könnte ich aber leben.

Hast Du noch einen Tip für mich, wie das mit dem Filtern funktioniert? So bekomme ich ja eine HTML Datei mit allen Werten, was ich ja gerade vermeiden wollte.

Gruß
André
Bitte warten ..
Mitglied: Salektro
24.01.2015 um 14:29 Uhr
Hallo,
das wäre zwar in der Tat wünschenswert, funktioniert aber so leider nicht.
Ich habe keinen Einfluss auf die Formatierung der CSV Ausgabe von Aida64. Und der Webshop (1und1) erlaubt nicht die Verwendung beliebiger Platzhalter.
Es gibt im Prinzip nur "Überschrift", "Kurzbeschreibung" und "Beschreibung".
Die ganzen vielfältigen Daten müssen alle in eine CSV Zelle (für "Beschreibung") und darin dann schon formatiert sein. Ich sehe da nur den Weg über HTML Code.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 24.01.2015, aktualisiert um 15:14 Uhr
Zitat von Salektro:
vielen Dank für deine Hilfe., das sieht schonmal ganz brauchbar aus. Ich muss jetzt nur noch schauen, wie ich Powershell Skripte unter Linux zum Laufen bekomme,
öhm das wäre ganz gut gewesen das zu erwähnen wie soll man das aus der Kategorie VBA herauslesen können ? ... ja nee so ein Umweg würde ich hier nicht gehen. dann schon direkt ein Bash-Script ...
Hast Du noch einen Tip für mich, wie das mit dem Filtern funktioniert? So bekomme ich ja eine HTML Datei mit allen Werten, was ich ja gerade vermeiden wollte.
Das Filtern in Powershell funktioniert so:
01.
$csv | ?{$_.ItemID -eq '257'} | %{ 
02.
    #....... 
03.
}
oder mit Wildcards
01.
$csv | ?{$_.ItemID -like '25*'} | %{ 
02.
    #....... 
03.
}
oder mit Regular Expressions
01.
$csv | ?{$_.ItemID -match '^25[0-9]$'} | %{ 
02.
    #....... 
03.
}
Die Möglichkeiten sind da vielfälltig.
sonst muss ich das in meinem Virtualbox Windows XP machen. Damit könnte ich aber leben.
Unter XP musst du dann aber Powershell nachinstallieren.

Wie oben geschrieben würde ich das im Fall von Linux dann mit einem Bash-Script machen.

Grüße Uwe
Bitte warten ..
Mitglied: Salektro
24.01.2015 um 15:15 Uhr
Ok, das ist ja super. Muss ich mich dann reinarbeiten.
Hättest Du auch noch einen Hinweis wie ich das mit einem Bash Skript mache?
Grundsätzlich kenne ich mich in Linux besser aus und komme da denke ich auch besser rein.

Viele Grüße
André
Bitte warten ..
Mitglied: colinardo
24.01.2015 um 15:20 Uhr
Zitat von Salektro:
Hättest Du auch noch einen Hinweis wie ich das mit einem Bash Skript mache?
Grundsätzlich kenne ich mich in Linux besser aus und komme da denke ich auch besser rein.
auf die Schnelle etwa so:
01.
#!/bin/bash 
02.
FILECSV="./daten.csv" 
03.
FILEOUT="./daten.html" 
04.
 
05.
for line in $(tail $FILECSV -n +2) ; do 
06.
	itemID=$(echo $line | cut -d "," -f4) 
07.
	item=$(echo $line | cut -d "," -f5) 
08.
	value=$(echo $line | cut -d "," -f6) 
09.
	rows="${rows}<tr> 
10.
<td style=\"width: 381px;\">${item}</td> 
11.
<td style=\"width: 464px;\">${value}</td> 
12.
</tr> 
13.
14.
done 
15.
 
16.
echo " 
17.
<!DOCTYPE HTML> 
18.
<html> 
19.
<head> 
20.
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"> 
21.
<title>HTML Template</title> 
22.
</head> 
23.
<body> 
24.
<table border=\"1\"> 
25.
$rows 
26.
</table> 
27.
</body> 
28.
</html> 
29.
" >$FILEOUT
Grüße Uwe
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst PS Werte CSV-Datei in AD Attribut (3)

Frage von lupolo zum Thema Batch & Shell ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...