-
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[2, 2] = "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(false, null, null);
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)
-
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/deGrüße Nico
----------------------
Xing
----------------------
Zitat von unbekannt
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
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.
-
Hi
Hast du schon mal probiert, die Datei unter neuem Namen zu speichern oder in ein anderes Verzeichnis?Grüße Nico
----------------------
Xing
----------------------
Zitat von unbekannt
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
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?
Ähnliche Themen
-
Feststehende Zellen in Excel
Von NBOne im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 13.03.08, 10:39 -
Problem : excel zellen auslesen, integer und string in einer spalte
Von karl42 im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 29.09.06, 15:04 -
Excel Zellen formatieren @ VB6
Von jaquline im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 30.06.06, 13:11 -
Mit Textwriter in Excel Zellen schreiben
Von Vamp7771 im Forum .NET DatenverwaltungAntworten: 13Letzter Beitrag: 19.12.05, 14:38 -
Excel Problem :( Zeilenumbrüche in Zellen suchen?
Von droni im Forum Office-AnwendungenAntworten: 2Letzter Beitrag: 30.10.03, 13:32



Zitieren

Login





Lesezeichen