2009-08-11 7 views
1

Wir erhalten täglich Excel-Arbeitsmappen-Dateien, die mit dem gleichen Passwort passwortgeschützt sind. Wir kennen dieses Passwort. Gibt es ein Dienstprogramm oder eine Methode, um Kennwortschutz für diese Arbeitsmappendateien zu entfernen, ohne Excel.exe oder das Excel-Objekt aufzurufen. Unser Ziel ist es, Excel aus dem Prozess zu nehmen und SpreadsheetGear in VB.net zu verwenden. SpreadsheetGear kann jedoch nur den Schutz von Arbeitsblättern und nicht von Arbeitsmappen aufheben.Excel Passwort entfernen

Dank

Antwort

1

Sind sie XLS oder XLSX-Dateien?

für XLSX offenbar können Sie das RMS SDK verwenden, um mit verschlüsseltem XLSX-Speicherformat zu arbeiten. http://msdn.microsoft.com/en-us/library/aa767782(VS.85).aspx

Betrachtet man es, obwohl es nur eine Spezifikation mit fast keine Code-Beispiele, so viel Glück damit. Sobald Sie Zugriff auf das zugrunde liegende XML haben, können Sie den Standard-XML-Namespace von .net oder java verwenden, um mit der Datei zu arbeiten.

2003 (XLS) Format, es sei denn, Sie verwenden eine proprietary 3rd Party Vendor-Lösung, die programmatischen Zugriff unterstützt (keine Kenntnis von bestimmten Produkten) Sie sind kein Glück.

3

Sie müssen nur die Password-Eigenschaft der Arbeitsmappe auf einen leeren String gesetzt. In Python:

from win32com.client import DispatchEx 
xlApp = DispatchEx("Excel.Application") 
xlApp.Workbooks.Open (mySpreadsheet, Password=myPassword, WriteResPassword=myPassword) 
xlWB = xlApp.Workbooks[0] 
xlWB.Password = "" 
xlWB.Save() 
xlWB.Close(False) 
xlApp.Quit() 
+0

Greg, Danke für die Antwort. Leider fehlt die Markierung, da Excel.exe weiterhin gestartet wird. Ich brauche eine Möglichkeit, mit der Datei zu arbeiten, die nicht das Excel-Objekt oder die Excel-Datei enthält. – SVTCobra

+0

Um, wenn Sie Excel auf einem Server nicht ausführen möchten, möchten Sie vielleicht noch einmal überprüfen. Die Excel-API bietet einige Optionen zur Instanziierung. Eine besteht darin, immer eine neue Instanz zu verwenden; das hält mehrere Prozesse davon ab, sich gegenseitig auf die Füße zu treten. Die Speicherauslastung beträgt jeweils 20 MB - für die gesamte 1 Sekunde, die es laufen wird. – Greg

+0

Ich stimme zu, aber wir führen bereits Excel auf dem Server und mein Chef möchte es aus dem Prozess bekommen. – SVTCobra

Verwandte Themen