ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
2180
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    markuscjb ist offline Mitglied
    Registriert seit
    Jun 2008
    Beiträge
    15
    Hallo zusammen,

    ich bin gerade dran was zu schreiben um mit C# was in Excel zu schreiben. Gut der Zugriff funktioniert. Ich kann Daten herauslesen, nur das hineinschreiben nicht. Keine Ahnung warum. Vielleicht habt ihr ne Idee. Kopier mal mein Code hier rein.
    Habe den Code von: Stefan Macke als Vorlage genommen.

    Ich versuche mit ws.Cells[2, 2] = "irgendein Text"; was in eine Zelle hineinzuschreiben.

    PHP-Code:
                Microsoft.Office.Interop.Excel.Application excel null;

                
    Workbook wb null;

                try
                {

                    
    // Excel starten

                    
    excel = new Microsoft.Office.Interop.Excel.ApplicationClass();

                    
    excel.Visible false;



                    
    // Datei öffnen

                    
    wb excel.Workbooks.Open(
                        
    db_excel_pfad,

                        
    ExcelKonstanten.UpdateLinks.DontUpdate,

                        
    ExcelKonstanten.ReadWrite,

                        
    ExcelKonstanten.Format.Nothing,

                        
    ""// Passwort

                        
    ""// WriteResPasswort

                        
    ExcelKonstanten.IgnoreReadOnlyRecommended,

                        
    XlPlatform.xlWindows,

                        
    ""// Trennzeichen
                        
    ExcelKonstanten.Editable,

                        
    ExcelKonstanten.DontNotifiy,

                        
    ExcelKonstanten.Converter.Default,

                        
    ExcelKonstanten.DontAddToMru,

                        
    ExcelKonstanten.Local,

                        
    ExcelKonstanten.CorruptLoad.NormalLoad);

                    
    //Alle Meldungen z.B. Speichern ausschalten
                    //   wb.Application.DisplayAlerts = false;


                    // Arbeitsblätter lesen
                    
    Sheets sheets wb.Worksheets;

                    
    // ein Arbeitsblatt auswählen...

                    
    Worksheet ws = (Worksheet)sheets.get_Item("Tabelle1");

                    
    // ...oder eine Zelle

                    
    Range range = (Range)ws.get_Range("A1""A1");

                    
    // deren Wert auslesen

                    
    string zellwert range.Value2.ToString();

                    
    //Was hineinschreiben

                    
    ws.Cells[22] = "irgendein Text";
                    
    MessageBox.Show(zellwert);

                    
    // Range und Worksheet Objekte freigeben              
                    
    range null;
                    
    ws null;


                }

                
    finally
                
    {

                    
    // Falls noch offen, Excel Datei schliessen und

                    // Workbook Objekt freigeben
                    
    wb.Save();

                    if (
    wb != null)

                        
    wb.Close(falsenullnull);

                    
    wb null;

                    
    // Falls noch offen, Anwendung schliessen und

                    // Application Objekt freigeben

                    
    if (excel != null)

                    
    excel.Quit();
                    
    excel null;

                }

            } 
    Geändert von markuscjb (05.02.09 um 14:56 Uhr)
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.905
    Hi

    Bitte nicht immer schreiben, geht nicht!
    Wie äußert sich geht nicht?
    Gibt es Fehlermeldungen? Woran machst du fest, dass es "nicht geht"? Hast du schon mal debugged und/oder dir den Wert nach dem Setzen wird abgefragt?

    http://support.microsoft.com/kb/302084/de
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    markuscjb ist offline Mitglied
    Registriert seit
    Jun 2008
    Beiträge
    15
    Hi,

    also geht nicht äußert sich nicht mit keiner Fehlermeldung. Also auch vom Debugger her bekomm ich keinen Fehler. Kurz und gut er wirft gar keine Fehlermeldung.

    Nun ich lasse bsp in Zelle B2 was reinschreiben( ws.Cells[2, 2] = "irgendein Text"; )
    Wenn ich danach die Excel Datei öffne und hineinschau steht nichts drinne. Das ist das Problem.

    Aber dein Tipp mit gleich nach dem reinschreiben wieder Abfragen war schon mal gut. Nachdem ich reingeschrieben habe, habe ich die Zelle wieder abgefragt. Anscheinend schreibt er, speichert aber nicht.
    Weiß nicht, kannst du damit was anfangen? Wenn ich DisplyAlerts auf true setze, kommt zum schluss eine Abfrage ob ich die Datei speichern möchte. Wenn ich mit ja bestätige, fragt er nochmal, und zwar diesmal ob ich die Datei ersetzen möchte. Ich bestätige mit ja. Wenn ich dann die Excel Datei öffne sind die Daten was vorher schon drin waren da, aber das was ich mit dem c# Programm schreiben lassen habe ist nicht da.

    Also irgendwas muss beim speichern falsch laufen bzw. ich mache was falsch. Ich möchte das er einfach nach dem reinschreiben speichert. Ohne die Datei zu ersetzen.

    Danke schon mal für deine Hilfe.
     

  4. #4
    Avatar von Nico Graichen
    Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.905
    Hi

    Hast du schon mal probiert, die Datei unter neuem Namen zu speichern oder in ein anderes Verzeichnis?
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  5. #5
    markuscjb ist offline Mitglied
    Registriert seit
    Jun 2008
    Beiträge
    15
    Hi,

    ich habe jetzt die Datei mittels

    wb.SaveCopyAs(@"C:\test.xlsx");

    sprich eine Kopie von der Datei an einem anderen Ort abgespeichert. Wenn ich jezt hineinschaue passt es! Ja gut ich könnte jetzt die Datei an dem gleichen Ort unter dem selben Namen abspeichern. Die Datei würde dann parktisch im Hintergrund immer ersetzt.

    Dies wäre zwar eine Lösung die nicht sehr elegant ist, aber mit der man leben könnte.
    Was ich nur nicht versteh, wo das Problem beim normalen speichern liegt?
     

Thema nicht erledigt

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 29.09.06, 15:04
  2. VBA Exel - Inhalt von Zellen in Variable schreiben
    Von JumpnJack im Forum Visual Basic 6.0
    Antworten: 28
    Letzter Beitrag: 27.09.06, 11:37
  3. Mit Textwriter in Excel Zellen schreiben
    Von Vamp7771 im Forum .NET Datenverwaltung
    Antworten: 13
    Letzter Beitrag: 19.12.05, 14:38
  4. Excel Problem :( Zeilenumbrüche in Zellen suchen?
    Von droni im Forum Office-Anwendungen
    Antworten: 2
    Letzter Beitrag: 30.10.03, 13:32
  5. Zahlen in Excel-Zellen
    Von snowcoder im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 22.09.03, 09:25