tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
0
ZUGRIFFE
777
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von WiZdooM
    WiZdooM WiZdooM ist offline Mitglied Brokat
    Registriert seit
    Oct 2003
    Ort
    Hessen
    Beiträge
    344
    Hallo

    ich lese mittels c# ein logfile aus und lasse daraus für die letzten 64 Tage 4 Werte extrahieren.

    Bisher ist mein Ansatz SQL-Update orientiert, bei dem ich dank Office.Interop.Excel durch jedes Datum (primärschlüssel) gehe und die Werte der Spalten A-D update. Leider funktioniert das nicht, denn unglücklicherweise ist die Spaltenbezeichnung nicht in der 1. Zeile des Sheets, sondern in der 4. (In Zeile 1 und 2 stehen Informationen zur Liste). Das Resultat ist nun der Fehler 80040e10 - No value given for one or more required parameters (offensichtlich - weil OleDB davon ausgeht, dass meine Spaltenbezeichner in Zeile 1 stehen)

    Ist es möglich der Interop mitzuteilen, in welcher Zeile sich die Spaltenbezeichner befinden? Ich habe die Befürchtung, dass das nicht gehen wird.

    Angenommen ich wurde mir die Daten erst in ein DataSet o.Ä. überführen, könnte ich dann die gesamte Cell-Range(A5-D68) einfach überschreiben ohne dass ich über das SQL-Update gehen muss? Oder wäre es geschickter, ein neues Sheet zu erzeugen, die Werte stur von A5-D68 eintragen, die Range mit C&P in die Zielsheet bringen und das tempsheet wieder löschen?

    Edit:

    Wiedermal habe ich mir selbst die "Lösung" genannt. Ich habe es nun so gelöst:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    Object n = System.Reflection.Missing.Value;
                try
                {
                    Excel.Application excel = new Excel.Application();
                    Excel.Workbook workbook = excel.Workbooks.Open(table, n, n, n, n, n, n, n, n, n, n, n, n, n, n);
                    Excel.Worksheet worksheet = workbook.Worksheets[1];
     
                    int maxRow = 68;
                    int maxColumn = 4;
     
                    worksheet.PageSetup.PaperSize = Excel.XlPaperSize.xlPaperA4;
     
                    for (int row = 5; row <= maxRow; row++)
                    {
                        var values = daysLog[row - 5].ToString().Split(';');
                        for (int column = 1; column <= maxColumn; column++)
                        {
                            worksheet.Cells[row, column] = values[column - 1];
                        }
                    }
                    workbook.Save();
                    excel.Quit();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Fehler!");
                }
    Geändert von WiZdooM (07.01.11 um 15:33 Uhr)
     
    Gruß

    Wizzy

Ähnliche Themen

  1. Excel: Zellen fixieren
    Von HPB im Forum Office-Anwendungen
    Antworten: 1
    Letzter Beitrag: 24.04.08, 09:47
  2. Excel Interop
    Von JackSparrrow im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 14.09.07, 09:22
  3. EXCEL mit c# und interop öffnen ohne warnmeldungen
    Von jduecker im Forum .NET Café
    Antworten: 6
    Letzter Beitrag: 11.12.06, 23:40
  4. Excel Zellen formatieren @ VB6
    Von jaquline im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 30.06.06, 13:11
  5. mit VB in Excel Zellen formatieren
    Von Der nette Mann im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 02.12.04, 18:43