In Excel XML bzw. Excel.xlsx Mehrfachzugriff erlauben?

stoperror
Goto Top

Nächtlich werden Excel.xmls erstellt. Problem ist nur, wenn die Datei schon von jemandem geöffnet ist, dann kann sie derzeit nicht erstellt werden.

Gibt es eine Möglichkeit den Mehrfachzugriff im Excel-xml 2003 zu hinterlegen?
Oder gibt es eine andere Möglichkeit das z. B. über das Netzwerk zuzulassen?

Oder geht das überhaupt nicht?

Ich erstelle die Datei übrigens aus C# über das Speichern eines XMLDocuments.

XMLDoc.Save(sourcefilepath);

Vielleicht kann ich auch nach dem obigen Save die Zugriffsberechtigung der Datei noch ändern?


Danke schon mal für die Infos.
Kommentar vom Moderator Biber am 10.11.2011 um 12:58:39 Uhr
Verschoben von "Linux"-"Office" nach "Windows"-"Office"-"Excel"

Content-Key: 173508

Url: https://administrator.de/contentid/173508

Ausgedruckt am: 29.06.2022 um 21:06 Uhr

Mitglied: stoperror
stoperror 22.09.2011 um 13:27:19 Uhr
Goto Top
Alternativ kann die Datei wohl auch als xlsx erzeugt werden.

Weiss jemand wie ich aus C# für die xlsx-Datei Schreibzugriff sperre und für die Datei für Mehrfachzugriff zulasse?
Mitglied: stoperror
stoperror 23.09.2011 um 12:13:51 Uhr
Goto Top
Mit Workbook.saveas soll das gehen.

Problem ist nur, ich bekomme beim Saveas den Fehler:

Fehler Ausnahme von HRESULT: 0x800A03EC

Workbook.Save funktioniert übrigens.
Mitglied: stoperror
stoperror 26.09.2011 um 09:53:40 Uhr
Goto Top
Also SaveAs geht auch.

Aber nur ohne Microsoft.OfficeInterop.Excel.XlSaveAsAccessMode.xlShared.
Sobald ich das Shared einfüge bekomme ich die Ausnahme 0x800A03EC.


wb.SaveAs(sourcefilepath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared);

Das Fileformat der Originaldatei ist übrigens xlOpenXMLWorkbook. Das scheint Visual Studio 2010 gar nicht zu kennen.

Hat jemand eine Idee, wie ich das Shared doch noch setzen kann?
Mitglied: stoperror
stoperror 26.09.2011 um 11:42:11 Uhr
Goto Top
Ich hab jetzt mal versucht die Datei, die da rausfällt von Hand über Excel auf Mehrfachzugriff freizuschalten.
Da bekomme ich die Meldung, dass ich die Excel-Tabellen in Bereiche konvertieren muss.
Das habe ich gemacht und dann geht's auch.

Nun müßt ich nur noch wissen wie das in C#-Code geht und heisst.
Weiss da einer von Euch Bescheid?

Erst jetzt gemerkt: durch die Konvertierung in Bereiche verliert das OpenXMl-Dokument die Filter und Fixierung der Spaltenüberschriften.
Das will ich eigentlich nicht...

Bzw. ich müße die Bereiche umwandeln, dann den Freeze und den Autofilter neu setzen.

Hat das schon mal jemand gemacht?