2010-12-10 2 views
0

Ich habe ein Programm, das die Excel-Interop-Routinen verwendet, um eine Reihe von Berichten auf der Grundlage einer Excel-Vorlage zu generieren.Excel Inter-OP-Datei umbenennen

Dies alles funktioniert akzeptabel, aber der Nebeneffekt, den ich herausfinden möchte, ist, wie verhindert werden kann, dass die Benutzer die ursprüngliche Vorlage zu überschreiben.

Es muss aus Gründen, die außerhalb meiner Kontrolle liegen, Excel sein, die, so weit ich sagen kann, bedeutet, dass die Vorlage irgendwo im Intranet sein muss, dass alle Benutzer lesen/schreiben können. (Wenn es ein Archiv ist, kann die von den Benutzern ausgeführte Anwendung es nicht mit neuen Daten füllen.)

Ich dachte daran, dies zu versuchen, indem ich die Datei umbenenne und sie irgendwo anders im Netzwerk verschiebe, aber ich bin mir nicht sicher, ob das überhaupt möglich ist. (Also der Name des Threads)

Auch könnte es eine noch bessere Möglichkeit geben, das Problem anzugehen, an das ich gerade nicht gedacht habe.

Antwort

1

Ich habe es nicht versucht, aber ich denke, wenn Sie es in eine schreibgeschützte Freigabe einfügen, sollten Sie immer noch in der Lage sein, es zu öffnen und Dinge in das geöffnete Dokument zu schreiben, nur dass es nicht speichern kann zu diesem Speicherort müssen Sie stattdessen SaveAs verwenden, um es woanders zu speichern.

Sonst, wenn ich falsch liege, dann tun Sie, was Sie selbst gesagt haben, indem Sie es in eine schreibgeschützte Freigabe kopieren und es dann woanders kopieren, bevor Sie mit der Interop beginnen. Verwenden Sie einfach File.Copy, um es zu kopieren, vielleicht auf den Namen Path.GetTempFileName zurückgegeben, um sicherzustellen, dass Sie nichts anderes überschreiben, und dann am Ende, verwenden Sie einfach SaveAs, um es zu speichern, wo immer der Benutzer will.

+0

machen es zu einem Read-only-Lösung erwies sich als die beste Lösung. Ich nahm fälschlicherweise an, dass die Datei in diesem Speicher nicht editierbar ist, im Gegensatz zu nur nicht speicherbaren, was ich wollte und tatsächlich passiert. –