2009-08-11 11 views
1

우리는 같은 암호로 암호로 보호 된 Excel 통합 문서 파일을 매일 수신합니다. 우리는이 암호를 알고 있습니다. Excel.exe 또는 Excel 개체를 호출하지 않고 이러한 통합 문서 파일의 암호 보호를 제거하는 유틸리티 나 메서드가 있습니까? 우리의 목표는 Excel을 프로세스에서 제외하고 VB.net에서 SpreadsheetGear를 활용하는 것입니다. 그러나 SpreadsheetGear는 통합 문서가 아닌 워크 시트의 보호를 해제 할 수만 있습니다.Excel 암호 제거

감사

답변

1

XLS 또는 XLSX 파일입니까?

(XLSX 용) 분명히 RMS SDK를 사용하여 암호화 된 XLSX 저장소 형식으로 작업 할 수 있습니다. http://msdn.microsoft.com/en-us/library/aa767782(VS.85).aspx

코드 샘플이 거의 없으므로 그 스펙을 볼 수 있습니다. 일단 기본 xml에 액세스 할 수있게되면 .net이나 java에서 표준 xml 네임 스페이스를 사용하여 파일 작업을 할 수 있습니다.

2003 (XLS) 형식 (특정 제품을 인식하지 못하는 프로그래밍 방식 액세스를 지원하는 타사 공급 업체 솔루션을 사용하는 경우가 아니라면).

3

당신은 단지 빈 문자열로 통합 문서의 암호 속성을 설정해야합니다. 파이썬에서 :

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

그렉, 답변 해 주셔서 감사합니다. 불행히도 Excel.exe가 계속 실행되므로이 ​​부분이 누락됩니다. Excel 개체 또는 exe 파일을 포함하지 않는 파일을 사용하여 작업 할 수있는 방법이 필요합니다. – SVTCobra

+0

음, 서버에서 Excel을 실행하지 않으려면 다시 고려하고 싶을 수 있습니다. Excel API에는 인스턴스화를위한 몇 가지 옵션이 있습니다. 하나는 항상 새로운 인스턴스를 사용하는 것입니다. 이것은 여러 프로세스가 서로의 발가락을 밟지 못하게합니다. 메모리 사용량은 각각 20MB - 1 초 동안 실행됩니다. – Greg

+0

나는 동의한다. 그러나 우리는 이미 서버에서 Excel을 실행하고 있으며, 나의 상사는 그 프로세스에서 벗어나고 싶다. – SVTCobra