speichern von excel-Arbeitsblatt in teilen nicht geschützt, nur-lese-Modus von C#
Rette ich ein Arbeitsblatt erstellt in C# unter Verwendung der Arbeitsmappe.SaveAs-Methode. Die XlSaveAsAccessMode argument ist, dass Sie mir Probleme.
xlShared spart Arbeitsblatt im geschützten Modus, so dass Benutzer können spielen, um mit Diagrammen und untersuchen Sie Sie sorgfältig. Es ist im Grunde zeigt, wie ein Toter-Diagramm die verwiesen werden kann, um Daten.
xlExclusive ermöglicht dem Benutzer das speichern des Buches ungeschützten Zugang, andere aber nicht. Die anderen Benutzer sehen immer noch eine tote Diagramm.
Brauche ich zum speichern des Arbeitsblatts in einem Modus, in dem jeder Blick und untersuchen, und Sie werden in der Lage zu spielen, um mit charts, schließen die Serie mit Daten, Punkte, etc. Aber zur gleichen Zeit sollten Sie nicht in der Lage, speichern Sie Ihre änderungen, um die Datei zu überschreiben. Wie kann ich erreichen, das mit C# COM-Excel-API?
Referenzen -
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.saveas(v=vs. 80).aspx
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlsaveasaccessmode.aspx
Du musst angemeldet sein, um einen Kommentar abzugeben.
Speichern Sie zunächst Ihre Datei mit einem Kennwort gegen änderungen - Sie können dies tun, in der Speichern Als - dialog (unter der Tools dropdown am unteren Rand des Dialogfelds) auf, wie Sie speichern Sie Ihre Datei. Überprüfen Sie auch die Lesen-nur zu empfehlen checkbox zu zwingen, nur-lese-Modus auf die Datei.
Wenn der Benutzer die Datei öffnen, wird Excel Fragen, für die der write-Passwort, aber Benutzer, die nicht über das Kennwort wird gezwungen, zu gehen, um nur-lese-Modus. Im nur-Lesen-mdoe, können Benutzer änderungen an der Datei, aber Sie können nicht speichern Sie über die original-Datei (unabhängig von den nur-lese-Attribut in der Datei system) - Sie können nur speichern Sie eine neue Kopie der Datei unter einem neuen Namen (oder dem gleichen Namen in einem anderen Ordner).
Programmgesteuert speichern Sie Ihre Arbeitsmappe mit diesen Eigenschaften, die Sie tun können, so etwas wie:
Können Sie auch mit der
WorkBookBeforeSave
Ereignis und aktualisieren Sie die Arbeitsmappe mit tracking-Informationen zu identifizieren, die Kopien des ursprünglichen Arbeitsmappe. Dies würde helfen, mit Kopien gespeichert unter dem ursprünglichen Dateinamen in einem anderen Ordner. (Ich bin nicht vertraut mit diesem besonderen Ereignis, aber Sie können auch in der Lage sein, um das speichern abzubrechen, wenn die Behandlung es.)Sofern Sie die volle Kontrolle über die Datei (die ist in der Nähe von unmöglich, mit nur Excel) Benutzer werden in der Lage sein, um Kopien der Datei, aber die oben genannten Einstellungen zumindest zwingen Sie zum speichern neuer Kopien, während das original intakt ist. Tut dies Ihr problem lösen?
SaveAs
Aufruf speichern Sie es als nur-lese -. Ich nehme an, Ihr Benutzer haben keinen Zugriff auf die Vorlage, die Sie verwenden (oder wenn Sie es tun, ist von keinerlei nutzen für Sie), so gibt es keine Notwendigkeit zu haben, es zu Lesen-nur.