2010-04-22 7 views
6
static void Main() 
{ 
    Application excelapp = new Application(); 
    Workbook book = excelapp.Workbooks.Open(@"C:\HWYFAB.xlsx", 
    0, false, 5, "", "", false, XlPlatform.xlWindows , "", 
    true, false, 0, true, false, false); 

    Worksheet sheet = (Worksheet)book.Sheets[1]; 

    Range cell = (Range)sheet.Cells[3, 2]; 
    Console.WriteLine(cell.Text); 
    cell.ClearContents(); 
    book.Close(true, "HWYFAB.xlsx", false); 
    excelapp.Quit(); 
} 

Dieses Programm wird wie erwartet ausgeführt und beendet. Es druckt den richtigen Wert, der sich in Zelle B3 befindet, auf der Konsole. Beim Schließen fragt es, ob ich die vorhandene Datei ersetzen möchte. Ich klicke ja. Wenn ich die Kalkulationstabelle in Excel öffne, ist der Wert immer noch in Zelle B3 trotz der Zelle.ClearContents().Excel-Tabellenkalkulation mit Interop C speichern

Irgendwelche Gedanken?

Antwort

5

Ihr Anruf an cell.ClearContents() löscht Formeln und Wertkonstanten aus der Zelle. Dies sollte absolut funktionieren. Sie können dies nach Ihrem Anruf an cell.ClearContents() durch Testen bestätigen, wenn cell.Value2 == null, die true sein sollte.

Ich glaube, dass das Problem mit Ihrem Code in den Anruf book.Close(true, "HWYFAB.xlsx", false) ist. Das Problem besteht darin, dass Sie den Namen Ihrer Arbeitsmappe explizit übergeben, aber den Pfad verlassen. (Beachten Sie, dass Sie beim Öffnen der Arbeitsmappe den vollständigen Pfad enthalten, einschließlich des Verzeichnisses "C: \".) Wenn Sie beim Speichern den vollständigen Pfad zur Arbeitsmappe beibehalten, werden Sie im aktuellen Verzeichnis gespeichert. Meine Dokumente "oder anderswo.

Wenn Sie die Arbeitsmappe direkt an ihrem ursprünglichen Speicherort speichern möchten, geben Sie Type.Missing für den Parameter Filename ein. Zum Beispiel:

Diese Idee ist nicht getestet, aber ich bin ziemlich zuversichtlich, dass dies für Sie arbeiten sollte. Probieren Sie es aus ...

- Mike

+0

Das hat den Trick gemacht. Es ist so merkwürdig, ich habe auf meinem Computer nach allen HWYFAB.xlsx-Kopien gesucht, und es gab nur die in C: \. Vielen Dank. – Wesley

+0

Sehr seltsam ... Sie müssen möglicherweise versuchen, nicht indizierte Standorte zu suchen, denke ich? Froh, dass du dein Problem überstanden hast! –

Verwandte Themen