zurück zur Startseite
  


Zurück XHTMLforum > Sonstiges > Offtopic
Seite neu laden Mit Excel HTML Tags in *.csv Daten speichern?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 21.09.2009, 12:22
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 03.11.2004
Beiträge: 14
elTorito befindet sich auf einem aufstrebenden Ast
Standard Mit Excel HTML Tags in *.csv Daten speichern?

Hi,

weiß jemand ob es möglich ist mit Excel , formatierte Texte in einer *csv Datei zu speichern? Also wenn ich in Excel z.b. einen Text Fett mache oder Unterstrichen, das diese Formatierung beim Speichern in einer csv Datei übernommen werden , umgewandelt als Html Tag z.B.

Darf auch ein anderes Format als CSV sein, sofern ich in der Enddatei die Trennung der Datensätze per Semikolon ermitteln kann. Müssen auch keine HTML Tags sein, hauptsache irgendwie erkennbar so das ich diese ersetzen könnte durch Html Tags.

Danke.
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 21.09.2009, 17:28
Benutzerbild von Pablo
4 8 15 16 23 42
XHTMLforum-Kenner
 
Registriert seit: 31.05.2004
Beiträge: 1.772
Pablo sorgt für eine eindrucksvolle AtmosphärePablo sorgt für eine eindrucksvolle Atmosphäre
Standard

Ganz üblich für Formatierungen in ASCII Texten:

*fett*
_kursiv_

Ob Excel das irgendwie automatisch kann weiß ich nicht. Fetten Text in csv Dateien speichern geht jedenfalls nicht.
__________________
Go Opera!
… oder Chrome. Auch cool.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 21.09.2009, 18:04
Benutzerbild von Pr0g
(^.^)
XHTMLforum-Mitglied
 
Registriert seit: 23.08.2005
Ort: Düsseldorf
Beiträge: 535
Pr0g wird schon bald berühmt werden
Standard

Wenns nicht geht, vllt. kann man sich ja ein Macro schreiben welches vor dem Export alle Zellen durchgeht und schaut wie sie formatiert sind und dann entsprechend Sternchen etc. hinzufügt.

Edit: Habe hier grad mal was gebastelt^^

Code:
Sub Excel2CSV()

  ' Eine Zelle
  Dim mycell As Range
  
  ' Die erste Tabelle
  Set mytable = Sheets(1).UsedRange
  
  ' Alle Zellen in der Tabelle durchlaufen
  For Each mycell In mytable
    ' Prüfen ob in der Zelle etwas steht
    If mycell.Text <> "" Then
      
      ' Fettschrift
      If mycell.Font.Bold Then
        mycell = "*" + mycell.Text + "*"
      End If
      
      ' Unterstrichen
      If mycell.Font.Underline = UnderlineStyleSingle Then
        mycell = "_" + mycell.Text + "_"
      End If
      
      ' Kursiv
      If mycell.Font.Italic Then
        mycell = "/" + mycell.Text + "/"
      End If
        
    End If
  Next mycell

End Sub
__________________

Geändert von Pr0g (21.09.2009 um 18:25 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 23.09.2009, 10:53
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 03.11.2004
Beiträge: 14
elTorito befindet sich auf einem aufstrebenden Ast
Standard

Hi,

und vielen Dank für den Vorschlag.
Das Makro von dir scheint nur aktiv zu werden wenn eine ganze Zelle Fett, oder Unterstrichen ... ist. Kann das?

Aber ein interessanter Ansatz. Ausbaufähig, ich versuche mich damit mal zu befassen. Makros für Excel in C# programmieren geht nicht, oder ? :- ) VBA ist nicht so wirklich mein Ding

Danke
Mit Zitat antworten
  #5 (permalink)  
Alt 23.09.2009, 19:49
Benutzerbild von Pr0g
(^.^)
XHTMLforum-Mitglied
 
Registriert seit: 23.08.2005
Ort: Düsseldorf
Beiträge: 535
Pr0g wird schon bald berühmt werden
Standard

Richtig, dass war nur für die gesamte Zelle. Ich denke mal nur Textabschnitte geht auch, doch ehrlich gesagt habe ich selbst kaum Ahnung davon und den Codeblock mehr zusammengeschustert^^

C# wird nicht gehen denke ich, Macros sind halt kleine VB Scripte, aber die Syntax ist doch leicht und mit C# wirst du (behaupte ich mal) auch nicht besser klar kommen, da es nicht an der Syntax scheitert, sondern an den speziellen Excel Befehlen/Objekten.

Ich kann ja mal schauen ob ich das noch anpassen kann, wenn nachher was Zeit bleibt.
__________________
Mit Zitat antworten
  #6 (permalink)  
Alt 24.09.2009, 20:26
Benutzerbild von Pr0g
(^.^)
XHTMLforum-Mitglied
 
Registriert seit: 23.08.2005
Ort: Düsseldorf
Beiträge: 535
Pr0g wird schon bald berühmt werden
Standard

Habe mich nochmal dran gesetzt und mit Hilfe von Google und etwas rumprobieren (^^) das ganze so umgeschrieben, dass nun die einzelnen Zeichen anstelle der ganzen Zelle verarbeitet werden. Schau mal ob es damit besser geht.

Code:
Sub Excel2CSV()

  ' Eine Zelle
  Dim myCell As Range
  
  ' Temporärer Zelleninhalt
  Dim tmpText As String
  
  ' Zellenlänge und Schleifenvariable
  Dim cellLen As Integer
  Dim i As Integer
  
  ' Formatierungen geöffnet
  Dim openBold As Boolean
  Dim openItalic As Boolean
  Dim openUnderlined As Boolean
  
  ' Formatierungen des aktuellen Zeichens
  Dim isBold As Boolean
  Dim isItalic As Boolean
  Dim isUnderlined As Boolean
  
  ' Die erste Tabelle
  Set myTable = Sheets(1).UsedRange
 
  ' Alle Zellen in der Tabelle durchlaufen
  For Each myCell In myTable
  
    openBold = False
    openItalic = False
    openUnderlined = False
    
    tmpText = ""
    
    cellLen = myCell.Characters.Count
    
    ' Prüfen ob in der Zelle etwas steht
    If cellLen > 0 Then
      
      ' Alle Zeichen durchlaufen
      For i = 1 To cellLen
     
        ' Fettschrift ermitteln
        isBold = myCell.Characters(i, 1).Font.Bold
        
        ' Kursiv ermitteln
        isItalic = myCell.Characters(i, 1).Font.Italic
             
        ' Unterstrichen ermitteln
        If myCell.Characters(i, 1).Font.Underline = xlUnderlineStyleNone Then
          isUnderlined = False
        Else
          isUnderlined = True
        End If
        
        ' Zeichenformatierung mit aktueller vergleichen und entsprechende Formatzeichen einfügen
        If Not openBold = isBold Then
          tmpText = tmpText + "*"
          openBold = isBold
        End If
        
        If Not openItalic = isItalic Then
          tmpText = tmpText + "/"
          openItalic = isItalic
        End If
        
        If Not openUnderlined = isUnderlined Then
          tmpText = tmpText + "_"
          openUnderlined = isUnderlined
        End If
        
        ' Zeichen übertragen
        tmpText = tmpText + myCell.Characters(i, 1).Text
        
      Next i
      
      ' Offene Formatierungen am Ende schließen
      If openBold Then
        tmpText = tmpText + "*"
      End If
      
      If openItalic Then
        tmpText = tmpText + "_"
      End If

      If openUnderlined Then
        tmpText = tmpText + "_"
      End If
      
      ' Neuen Zelleninhalt übertragen
      myCell = tmpText
      
    End If
    
  Next myCell
  
End Sub
Der Code mag vllt. nicht perfekt sein, sry bin kein VB Coder :P
__________________
Mit Zitat antworten
  #7 (permalink)  
Alt 25.09.2009, 10:39
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 03.11.2004
Beiträge: 14
elTorito befindet sich auf einem aufstrebenden Ast
Standard

Hola Pr0g

>> Der Code mag vllt. nicht perfekt sein, sry

Ich finde den Code und die Lösung Super Weiß gar nicht wie ich mich bedanken soll. Was mich ja am meisten wundert ist das ich auf meine "doofe" Frage eine Antwort bekommen habe inklusive einen Top Lösungsansatz ...

Wie heißt es so schön Geht nicht gibt es nicht?

Vielen Vielen Dank für deine Mühe.
Peter
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten speichern luki.boy Javascript & Ajax 9 13.04.2011 21:46
Daten mit html aus txt-Dateien lesen? Tobi Berlin Serveradministration und serverseitige Scripte 6 11.02.2010 16:22
Daten in HTML aus Datenbank übertragen? Dragonate CSS 2 26.01.2010 18:19
JS: daten speichern und abrufen Dumbatz Javascript & Ajax 2 01.03.2007 17:52
XML Daten in HTML Tabelle OvD (X)HTML 0 21.06.2006 16:24


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:51 Uhr.