문제

그것은 가능한 어떤 방식으로 편집하는 엑셀 시트를 통해 ASP.net 페이지 포함된 매크로입니다.을 열어 Excel sheet 고 그것은 그냥 걸어 보다는 오히려 부하 excel.테스트 페이지에 없는 매크로 완벽하게 작동하나?

도움이 되었습니까?

해결책

면책 조항:몰 Excel 라이센스 계약과 내가 알지 못하는 경우에 활용하여 엑셀에서 서버 프로세스를 위반하거나지 않습니다.이것은 순전히 기술하는 방법에 대한 설명은 그것을 얻을 작동합니다.독자가 조언을 확인하는 라이센스 계약을 하시면 그것은 그렇게 할 수는 없습니다.다른 버전이 다를 수 있 사용권 계약에 동의합니다.내가 사용하는 이 방법은 여러 가지 행운 100/500 기업과 그들은 보이지 않았다.Go 니다.

이 솔루션을 작동하지만 그것은 몇 가지 제한 사항이 있습니다와 필요한 공정한 금액의 통제 서버에서 실행됩니다.서버 또한 필요가 많이 있습니다.

시작하는지 확인할을 수행체 설치의 모든 단일 사무실 기능하도록 서버에서 Excel 려고 시도하지 않는 무언가를 설치하기 위해 시도하는 경우 기능을 사용하는 존재하지 않습니다.

당신이 또한 필요가 생성 전용에는 서버에 사용자 계정하는 권리가 있습니다. 내가 무엇인지 알 수 없기 때문에 정확하게 내 경우에 우리는 통제되는 서버에 그리고 우리는 그 사람들이 관리자 권한을 이 이용자에게 있습니다.

이 있을 경우 사용자 계정 로그인하신에 해당 사용자로 실행 Excel(바람직하게는 모든 사무실용)적어도 한 번도록 만들 수 있습니다.

당신은 또한을 구성해야 엑셀에서 실행되 이 사용자 계정을 만들 때 COM 체입니다.이를 위해,당신은 들어갈 필요가 DCOM 구성에서 서버 구성 Launch and Activation PermissionsExcel.Application 체를 사용하여 새로운 사용자 계정입니다. 나는 확실하지 않다면 내가 올바르게 기억하지만,제가 생각하는 이 단계를 수행한 후 실행하는 엑셀로 상호 작용하는 사용자가 약간 문제가 있습니다.

기본적으로,사무용 응용 프로그램을 시도를 표시하는 다양한 메시지를 화면에:경고,질문,etc.이러한 설정해야하기 때문에 사용하는 경우 Office 응용 프로그램을 웹 응용 프로그램에서,서버에서 실행됩 그래서 인간은 사용되지 않습을 해제한 이러한 메시지-사무실 프로그램은 그냥 앉아서 주변에는 무한히 기다리는 메시지를 갔습니다.

필요하신 세트(최소한)이러한 속성:

DisplayAlerts = false
AskToUpdateLinks = false
AlertBeforeOverwriting = false
Interactive = false
Visible = false
FeatureInstall = 0 'msoFeatureInstallNone

사용하지 않 UI 메시지에서 Excel. 당신이 사용하는 경우 Excel2010,거기에 더 많은 수 있지만,나는 익숙하지 않습니다.

이 있는 경우 엑셀 파일로서 매크로에,그들을 사용하지 않도록 설정해야 할 수 있습크로에서의 보안 Excel-할 수 없는 프로그래밍 방식으로 수행됩한 이유가 있습니다.

액세스하는 Excel services,를 구현하는 객체 관리자는 것입니다 실제로 개최 Excel 참조지 않을 유지하려고합니다.응용 프로그램 개체 페이지에 있기 때문에 당신의 페이지 코드가 될 것이 매우 복잡하고 못할 수도 있습을 제대로 사람들이 한 자리에 모인다.

는 개체를 보유하고 Excel 참조할 수 있는 별도의 DLL 또는 out-of-프로세스 서버입니다.지 확인해야 합니다,그러나,당신이 취득 할 때 인스턴스의 엑셀에서 스레드에 당신 항상 새로 만들어 Excel 인스턴스.기본값은 것을 이미 실행 Excel 인스턴스에서 역할을 다른 요청은 그러나 그것은 작동하지 않을 것이기 때문에 당신을 위해 같은 Excel 인스턴스 공유할 수 없습니다 사이에서 여러 스레드입니다.각 요청을 처리하는 스레드에서 IIS 이 있어야 합 Excel 인스턴스 -공유하는 경우 경우에,당신은 모든 종류의 문제입니다.즉,서버가 필요 아주 조금의 메모리의 수가 많을 경우의 엑셀 실행됩니다. 이것이 문제가 되지 않지 나를 위해 때문에 우리는 통제되는 서버입니다.

는 경우,당신이 할 수있는 시도를 만들 out-of-proc(.exe)COM server 기 때문에 이 방법을 보유할 수 있 엑셀에서 참조하는 별도로 처리됩니다.그것은 가능한 그것을 얻을 사용하여 작업-proc(.dll)COM 체 그러나 그 이상의 위험을 당신의 수영장 응용 프로그램-는 경우에는 Excel 충돌을 충돌 앱 수영장 같습니다.

이 있는 경우.exe 서버로 전달할 수 있습니다 매개변수에서 여러 가지 방법:

  1. 당신의 관리자 objet COM 체와 매개 변수를 전달 속성으로 표시됩니다.
  2. 패스를 매개 변수를 명령줄 parameteres 니다.exe 으로 시작됩니다.
  3. 에서 매개 변수를 전달한 텍스트/바이너리 파일통과하는 파일의 이름을 명령 라인입니다.

내가 사용하는 모든이 발견 COM 체 옵션을 깨끗.

에서 당신의 관리자체 이 지침을 따릅니다:

  • 포장의 모든 단 하나 기능을 사용하는 엑셀에서 try..catch 블록을 캡처하는 가능한 모든 예외는 아니다.
  • 항상 명시적으로 방출의 모든 Excel 개체를 호출하여 Marshal.ReleaseComObject() 다음 설정의 변수 null 한 빨리 당신이 그들이 필요하지 않습니다.항상 릴리스에서 이러한 개체 finally 블록하는지 확인에 실패 Excel 메소드 호출이 없 결과에 매달려 COM 체입니다.
  • 를 사용하려고 하면 어떤 포맷 기능 엑셀에서(페이지의 헤더,마진,etc.) 당신이 있어야 합 프린터를 설치하고 사용자가 액세스할 수 있는 계정을 사용하여 실행합니다.이 없는 경우 활성 프린터(바람직 서버에 연결),서식 관련 기능이 작동하지 않을 수 있습니다.
  • 을 때의 오류 발생 가까운,Excel 인스턴스는 당신이 사용합니다.그것의 가능성이 없는 복구할 수 있습니다 엑셀에서 관련 오류를 및 더 이상 당신은 유지하는 인스턴스,더 이상 사용하는 리소스입니다.
  • 종료할 때는 엑셀,는지 확인을 감시하는 코드에 대한 재귀화-는 경우는 예외 처리기를 종료하려고 하 Excel 하는 동안 당신의 코드입니다 이 과정에서의 종료 Excel,당신은 끝날 것이 죽은 Excel 인스턴스입니다.
  • 전화 GC.Collect()GC.WaitForPendingFinalizers() 바로 호출 한 후 이 Application.Quit() 방법 확인하는 것.NET Framework 모든 Excel COM 즉시 개체.

편집:존스 지점이있을 수 있습에 관한 라이선스 계약-I 할 수 있는지에 대해 조언니다.프로젝트는 않았을 사용하여 말씀/Excel 모든 인트라넷 응용 프로그램에서 큰 클라이언트와 요구 사항을 사용하여 말씀/Excel 었습니다.

링크 그는 또한 몇 가지 도구용으로 사용할 수 있는지만,그러지 않 전체 Excel 기능과한 경우에 필요 없는 선택입니다.가 필요하지 않은 경우 전체 Excel 기능 확인,라이브러리를 사람들-그들은 그 수는 훨씬 더 간편합니다.

몇 가지의 링크 유용하게 사용할 수 있는 사람들을 구현하기 위해 노력하고 이 방법:

다른 팁

이야기는 Excel 용 HPC 서비스 .

웹 서버에서 Office 자동화를 수행 할 수 있습니다.나는 그것이 내 상황에 맞는지를 결정하려고 노력하고 있지만, 그것을 확인하고 싶을 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top