Frage

Dies ist möglicherweise ein wenig auf die dumme Seite der Dinge, aber ich Notwendigkeit zu senden, die den Inhalt einer DataTable (unbekannt Spalten, unbekannte Inhalte) werden über eine text-e-mail.Die grundlegende Idee besteht darin, eine Schleife über Zeilen und Spalten ein-und Ausgabe alle Inhalte der Zellen in einen StringBuilder verwenden .ToString().

Die Formatierung ist ein großes Problem, obwohl.Irgendwelche Tipps/Ideen, wie man diesen look "lesbar" in einem text-format ?

Ich bin am überlegen "padding" jede Zelle mit Leerzeichen, aber ich brauche auch aufteilen, einige Zellen in mehreren Zeilen, und das macht die StringBuilder-Ansatz ein bisschen unordentlich ( weil die zweite Zeile des Textes aus der ersten Spalte nach der ersten Zeile des Textes in der letzten Spalte,etc.)

War es hilfreich?

Lösung

Möchten Umwandlung der Datentabelle in eine HTML-Tabelle und Senden von HTML-Mail eine Alternative? Das wäre es viel schöner am empfangenden Ende machen, wenn ihre Kunden unterstützt.

Andere Tipps

Dies wird wie eine wirklich schreckliche Lösung klingen, aber es könnte funktionieren:

Render die Datatable Inhalt in einem Datagrid / Gridview (vorausgesetzt, ASP.NET) und Bildschirm dann, dass kratzen.

Ich habe dir gesagt, es sei chaotisch.

Erhalten Sie für jede Spalte die maximale Größe zuerst. Auf diese Weise ein varchar (255) Spalte Postleitzahlen enthalten, werden nicht zu viel Platz in Anspruch nehmen.

Vielleicht können Sie die komplette Tabelle aufgeteilt statt Splitting einzelne Linien. Legen Sie den kompletten rechten Teil der Tabelle in einem zweiten Stringbuilder und legt sie unter der ersten Tabelle.

Sie können auch dem Benutzer die Möglichkeit geben, durch Komma getrennten Text zu erstellen, so dass der Empfänger die Tabelle in eine Tabelle importieren kann.

Schleife durch die Datentabelle und als HTML-E-Mail - HTML-Tabelle aus Datentabelle zu erzeugen und sie zu senden als Körper der E-Mail .

Ich habe diese Arbeit durch einen benutzerdefinierten Formatierer speziell für diese Aufgabe zu schreiben. Der Code ist etwa 120 -130 Zeilen lang, so dass ich weiß nicht, ob ich es hier als Antwort schreiben soll (vielleicht ein Feature zu befestigen CS-Dateien zu einem Thema eine gute ideea wäre!).

Wie auch immer, wenn jemand interessiert daran ist, lassen Sie mich wissen und ich werde den Code zur Verfügung stellen.

Braucht es schön formatiert werden, oder wird ein automatisiertes System die Mail-Nachricht am anderen Ende abholen? Wenn letzteres der Fall, verwenden Sie einfach die .WriteXml des Datatable () -Methode.

Sie können smth wie folgt tun (wenn VB):

Dim Str As String = ""
    'Create File if doesn't exist
        Dim FILE_NAME As String = "C:\temp\Custom.txt"
        If System.IO.File.Exists(FILE_NAME) = False Then
            System.IO.File.Create(FILE_NAME)
        End If

        Dim objWriter As System.IO.StreamWriter
        Try
            objWriter = New System.IO.StreamWriter(FILE_NAME)
        Catch ex As System.IO.IOException
            MsgBox("Please close the file: (C:\temp\Custom.txt) before proceeding" & vbCrLf & ex.Message.ToString, MsgBoxStyle.Exclamation)
            objWriter = Nothing
            Err = True
        End Try


'I assume you know how to write to text file.
'Say my datagridview is named "dgrid"

Dim x,y as integer

For x = 0 to dgrid.rows.count -1
    For y = 0 to dgrid.columns.count - 1
       Str = dgrid.Rows(x).Cells(y).Values & " "
   Next y
Next x

objWriter.Close()

.

Sie können aber auch eine CSV Datei von Ihrer Datentabelle erzeugen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top