text Datei auf FTP-Server in Excel Tabelle speichern

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von brice_leef.

    text Datei auf FTP-Server in Excel Tabelle speichern

    Hallo zusammen

    ich versuche eine Textdatei, die sich auf einem FTP-Server befindet als Excel-Tabelle zu speichern. ch kann momentan nur die Datei in eine Excel Tabelle importieren, aber ich kann es noch nicht als Excel Tabelle speichern, bzw weiss nicht wie es geht.

    Kann mir einer da helfen??

    gruß

    Brice
    Hey,

    zunächst: warum ist das Thema bereits als "Erledigt" gekennzeichnet? Hast du bereits eine Lösung?

    Zum Problem: Was genau meinst du mit "Ich kann momentan nur die Datei in eine Excel Tabelle importieren [...]"? Du willst deine Textdatei als Excel-Datei speichern? Grundsätzlich würde ich die Textdatei herunterladen und als CSV-Datei abspeichern. Diese ist dann von jedem Tabellenkalkulationsprogramm einlesbar. Anschließend kannst du die Datei wieder auf deinen FTP-Server uploaden.

    Gruß, Manschula
    Das Thema ist nicht erledigt...

    Da habe ich mich wahrscheinlich vertippt.

    ich kann die Datei nicht als csv-Datei speichern. Das Format wurde vorgegeben... wenn ich mein Code aufrufe werden die Werte in einer Excel.Application angezeigt, nur es passiert nichts, wenn ich versuche die Datei dann als xls-Datei zu speichern.

    Hier ist der Code:

    Dim Data As String, sText As String
    Dim Zeile As Long

    Dim myExcelApp As Excel.Application 'Excel Application zur Darstellung der Datei

    Dim xlsApp As Excel.Application

    Private Sub taskClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Task.Click

    Const ftpHost As String = " ***** " 'Location der Datei auf FTP-Server
    Dim ftp As System.Net.FtpWebRequest = DirectCast(System.Net.FtpWebRequest.Create(ftpHost), System.Net.FtpWebRequest)

    On Error GoTo Fehler

    ftp.KeepAlive = False
    ftp.UseBinary = True
    ftp.Credentials = New System.Net.NetworkCredential("user", "password") 'Zugriff nach Eingabe von Username und Passwort
    ftp.Method = System.Net.WebRequestMethods.Ftp.DownloadFile 'Laden der Datei auf FTP-Server

    myExcelApp = New Excel.Application
    myExcelApp.UserControl = True

    myExcelApp.Workbooks.Open(ftpHost).select() 'zeigt die Datei in einer Excel Tabelle

    'myExcelApp.ActiveWorkbook.SaveAs("C:\Ueberwachung\ertraege.xls")

    myExcelApp.Application.Quit()
    myExcelApp.Visible = True


    'myExcelApp.Quit()

    Fehler:
    If ftpHost = Nothing Then
    MsgBox("Bitte eine gültige Zieladresse auswählen")
    End If
    End Sub


    Hilft es ein wenig??

    Gruß

    Brice
    So ist es:

    Ich habe einen Datenlogger, der den Stromverbrauch meines PCs aufzeichnet. Der wird als Impulse erfasst und jede halbe Stunde in einer Textdatei auf einem Server per FTP geschickt.

    Diese Impulswerte müssen dann jetzt in einer Tabelle erfasst werden.

    Mit dem was ich geschrieben habe, kann ich nur die Werte (Textdatei) in einer Exceltabelle zeigen lassen, nur es sollte dann in einer anderen Tabelle kopiert, bearbeitet und dann wieder auf dem Server geladen werden.

    Mit "myExcelApp = New Excel.Application" erstelle ich doch eine neue Instanz der Excel-Klasse oder irre ich mich???
    das Format ist vorgegeben... ich kann es nicht selber bestimmen...

    Wie gesagt; ich habe kann schon die Datei mit den Erträgen vom Server holen und daraus eine Tabelle erzeugen und erstmal lokal speichern...

    Nun muss ich nur eine zweite lokale Tabelle erzeugen wo die Werte zusammengerechenet und/oder bearbeitet werden...

    Dafür hatte ich folgendes geschrieben, aber es scheint nicht zu laufen:

    For zeileTmp = 1 To myExcelApp.Rows.Count
    ' If myExcelApp.Cells(zeileTmp, 1).Value = myExcelApp.Cells(zeileTmp + 1, 1) Then
    ' iterator = iterator + 1
    ' ertrag = ertrag + myExcelApp.Cells(zeileTmp, spalte + 1).Value
    ' Else
    ' iterator = 1
    ' xlsApp.Cells(1, spalte).Value = myExcelApp.Cells(zeileTmp - 1, 1) 'Datum
    ' xlsApp.Cells(3, spalte).Value = "kwh/ kWp"
    ' xlsApp.Cells(zeile + 5, spalte).Value = ertrag 'Ertrag
    ' spalte = spalte + 1
    ' ertrag = 0

    ' End If

    'Next zeileTmp


    Das Programm scheint nach der Zeile "myExcelApp.Workbooks.Open(ftpHost).select()" nichts mehr zu machen. Habe als Test eine MsgBox-Ausgabe eingebaut, aber es wird nichts ausgegeben...

    Bitte helft mir...