2008-09-17 3 views
2

우리는 상당히 복잡한 계리 계산을 처리하기 위해 SQL 2000/5와 상호 작용하는 Excel 2002/XP 기반 응용 프로그램을 보유하고 있습니다. 응용 프로그램은 기능을 제대로 수행하지만 관리하기가 어렵습니다..Net 응용 프로그램에서 여러 Excel 인스턴스를 제어하는 ​​좋은 예가 있습니까?

우리는 이러한 다양한 Excel 인스턴스 (시작/중지/프로세스 명령 등)를 관리하고 모니터링 할 수있는 "컨트롤러"응용 프로그램이나 서비스를 만들려고하지만 불행히도 InterOp 악몽입니다.

누구나 VB.Net 또는 C#에서 이와 같은 작업을 수행하는 좋은 예가 있습니까?

+0

Excel이 필요합니까? .NET 응용 프로그램에서 직접 계산하지 않는 이유는 무엇입니까? –

+0

합창단에게 설교하십시오! 전환 노력은 너무 지나치게 많으며 경영진은 기존 애플리케이션을 "다시 코딩"해야 할 필요가 없습니다. –

답변

3

하지 마세요!

우리는 일하기 위해 몇 주가 걸렸지 만 광고 된대로 행동하지 않습니다. 시작하지 마라 - 즉시 포기하라!

실제로 사용할 수있는 유일한 옵션은 무거운 서버 측 MOSS 기반 구현 인 Excel (웹) 서비스입니다. Windows 기반 COM Excel interop은 거의 죽었으며 MOSS로 대체 될 것입니다.

다른 옵션은 SpreadsheetGear를 사용하는 것입니다. 사실은 환상적인 제품

  1. 그것은 lightlingly 빠른입니다
  2. 상당히 저렴한
  3. (설치되지 않은 사무실) 엑셀 물건 서버 측을 위해 사용할 수 있도록 엔진은 UI에서 분리
  4. 기존 Excel COM API와 비슷한 API를 사용하므로 코드를 비교적 쉽게 이동할 수 있습니다.

모두 스프레드 시트에 필요한 수식에 따라 달라집니다. Spreadsheet Gear의 수식 목록을 살펴보고 일치하는 것이 있으면 찾아보십시오.

+0

"생각조차하지 마라."우리는 간단한"시작/정지/종료 "유형의 서비스를 시도하고 작성하려고하지만 실제로 여러 인스턴스와 상호 작용하는 것은 위험한 길이라는 것 같습니다. –

1
당신은이 제품에 대해 살펴 걸릴 수도 있습니다

: http://www.spreadsheetgear.com/products/spreadsheetgear.net.aspx

그것은 모든 관리 코드와 직접 .NET 라이브러리의합니다. InterOp 두통 없음. 나는 그것을 사용하지 않았지만 금융 세계의 사람들로부터 아주 좋은 것을 들었다.

+1

우리는이 제품을 평가 한대로합니다. 불행히도 우리의 필요를 충분히 감당할 수 없으며 전환 노력은 엄청날 것입니다. –

1

우리는 Excel 2003의 단일 인스턴스를 제어하는 ​​서비스를 작성했습니다. Excel 인스턴스가 깨끗하게 닫히지 않으므로 서비스가 처음 액세스 될 때 인스턴스 하나가 시작되어 클라이언트 요청을 순차적으로 사용합니다.

2

Interop은 항상 해제되지 않은 Excel 개체에 대한 참조로 끝나기 때문에 정상적으로 작동하므로 Excel 인스턴스가 닫히지 않습니다. 당신은 매우 신중하게 Interop를 시나리오의 제한된 집합에 대한 코드를 작성한 경우

http://support.microsoft.com/default.aspx/kb/317109/EN-US/

당신은 문제를 방지 할 수 있습니다 : 다음 KB 기사는 이유를 설명. 그러나 일반적인 경우에는 안정적으로 작동시키기가 매우 어렵습니다.

관련 문제