2016-11-10 3 views
0

백그라운드 스레드에서 파일을 다운로드하는 다운로드 유틸리티를 구현했습니다. 이제 각 파일의 다운로드 결과를 Excel 시트로 내보내는 기능을 구현하고 싶습니다. 이 목적을 위해 Microsoft.Office.Interop.Excel 라이브러리를 사용하고 있습니다. 이렇게하려면 Excel 통합 문서를 만들고 항목을 입력하십시오. 내 문제는 다운로드 프로세스가 시작될 때 통합 문서를 열어 놓았는지 여부입니다. 통합 문서를 작성하거나 입력을 원할 때마다 새로운 Excel 연결을 만들어야합니까? 다운로드에는 많은 시간이 걸릴 수 있습니다.C#에서 통합 문서 연결을 계속 유지해야합니까? 아니면 새 행을 추가해야 할 때마다 새 문서를 열어야합니까?

답변

1

Interop 사용시 실제로 사용되는 것은 백그라운드에서 excel.exe 프로세스를 실제로 만든 다음 DCOM을 사용하여 실행중인 프로세스를 조작한다는 것입니다.

일반적으로 파일을 처음 열 때 Excel이 실행되고 있지 않으면로드하는 데 시간이 걸립니다. 따라서 점진적 업데이트를 수행하려는 경우 파일을 백그라운드에서 열어 두는 것이 좋습니다.

Interops는 대상으로하는 Office 버전에 하드 코드되어 있으며 Office가 제대로 작동하려면 설치해야합니다.

저는 개인적으로 Excel 조작을 위해 타사 라이브러리를 사용합니다.이 라이브러리는 Interop 어셈블리보다 훨씬 성능이 뛰어나므로 컴퓨터에 Office를 설치해야하는 하드 종속성이 없습니다. 내가 interop 어셈블리의 버전 15을 사용하고 SpreadsheetGearFlexCel

+0

, 그래서 엑셀의 특정 버전과 함께 그 일 것 : 나는 성공적으로 사용했습니다

예는 다음과 같다. –

+0

버전 15가 해당하는 버전에서 작동합니다. 이전 버전에서는 작동하지만 보장 할 수는 없습니다. MS는 정기적으로 API 사이에 노출 된 API를 사용하고 있기 때문에 Office API 버전이 아닌 파일 형식을 따르는 많은 타사 라이브러리가 존재합니다. – toadflakz

+0

당신은 절대적으로 쓰고, interop 라이브러리는 절대 쓰레기 다. 나는 NPOI를 사용했다. 그리고 그것은 정말로 잘 작동하고있다. –