필자는 필자의 사무실 (파스칼)에서 일부 기존 코드를 유지 관리하고 있으며 제한 사항 때문에 TExcelApplication을 사용하여 Excel에 액세스하려면 델파이 DLL을 작성했습니다. .Borland Delphi 7 TExcelApplication.Connect는 사무실 컴퓨터에서 작동하지만 클라이언트에서는 작동하지 않습니다.
dll은 사무실에서 완벽하게 작동하며 컴퓨터는 Microsoft Office 2010, Windows 7 32 비트 및 64 비트를 실행합니다. 클라이언트는 소설 워크 스테이션, Windows XP, Microsoft 2007을 사용하고 있습니다.
dll은 TExcelApplication.Connect가 발생할 때 중단 점 예외를 발생시킵니다. 명령.
앞서 언급 한 차이점 외에도 시나리오는 완전히 동일합니다.
소설 워크 스테이션에서 Microsoft Excel에 액세스하는 것과 관련하여 제한이 있습니까? 아니면 Excel 문서에 액세스하는 더 좋은 방법이 있습니까?
참고 : Excel 문서를 여러 줄, 열 및 스프레드 시트로 읽으려는 경우 원본 Excel 문서는 * .xls 2007 문서입니다.
Excel 문서에 대해 자동 조정 기능을 사용하는 것이 주요 기능이었습니다. 여기
는 라이브러리 코드 당신은 사용 목록에ActiveX
을 추가하고 ActiveX 구성 요소를 초기화하는
CoInitialize(nil);
를 사용할 필요가
library MyLibrary;
uses
SysUtils, Classes, Variants, Dialogs, StdCtrls, OleServer, ExcelXP, Windows;
Type
PString=String[254];
Var
ExcelObj : TExcelApplication;
Procedure XLSOPEN(THENAME:PSTRING;VAR Reslt:PSTRING); stdcall;
Begin
If FileExists(THENAME) Then
Begin
ExcelObj := TExcelApplication.Create(nil);
ExcelObj.ConnectKind := ckRunningOrNew;
ExcelObj.Connect;
If ExcelObj=nil Then
Begin
Result := 'Error : EXCEL couldnt be started!';
Exit;
End Else
Begin
Result := 'Successful';
Exit;
End;
End Else
Begin
Result := 'Error : File '+THENAME+' does not exist!';
Exit;
End;
End;
Exports XLSOPEN Name 'XLSOpen';
Begin
End.
자세한 오류 진단 정보가 필요하다고 생각합니다. –
면책 조항 : 90 년대 초반부터 Novell에서 근무하지 않았습니다. Novell은 서버 OS가 Windows보다 더 제한적인 방식으로 사용된다는 것을 알고 있습니다. Novell은 단순히 COM/OLE 자동화를 허용하지 않거나 특별히 "켜야"할 수 있습니다. 당신이 여기에서 사용하고있는 것은 무엇입니까. 그런 것이 없다면 예외 메시지를 추가하고 예외 메시지 및 LastOSError 코드 (및 메시지)와 같은 오류 정보를 기록하여 자세한 오류 정보를 얻고 이미 David이 제안한대로 여기에 제공하여 도움을 받으십시오. –
@ Marjan, Netware가 아닙니다. 응용 프로그램은 Windows 컴퓨터에서 실행되며 "Novell (sp) 워크 스테이션"은 Novell Netware Client를 네트워킹 드라이버로 사용하고 있습니다. Netware를 사용하면 COM이 잘 작동합니다 (원격 COM을 사용하는 경우 컴퓨터 경계에서 DCOM). 그러나 Windows 네트워크와 마찬가지로 Excel을 코드를 실행하는 워크 스테이션에 설치해야합니다. (우리는 서버 두 대에 내 사무실에서 Netware를 실행하고 있습니다.) –