2010-11-26 5 views
1

나는 자신이 SQL 테이블에 추가해야하는 데이터의 추가 또는 변경을 나타내는 약 3,000 개의 데이터 행을 포함하는 Excel 스프레드 시트를 소유하고 있음을 알고 있습니다. 상상할 수 있듯이 수동으로 처리하기에는 너무 비싸다. 필자가 통제 할 수없는 여러 가지 이유 때문에 SSIS 패키지 나 다른 간단한 방법을 사용하여 이러한 변경 사항을 데이터베이스에 적용 할 수는 없습니다. 내가 가지고있는 유일한 옵션은 MS SQL 2005에 스프레드 시트에 나타난 변경 사항을 적용 할 SQL 스크립트를 만드는 것입니다.VSTO를 사용한 Excel 데이터 처리?

Office 자동화 또는 VSTO에 대한 경험은 전혀 없습니다. 나는 온라인으로 보았지만 대부분의 튜토리얼은 나에게 혼란스러워했다.

내 생각에 .NET과 VSTO를 사용하여 데이터 행을 반복하거나 LINQ를 사용하여 의미가있는 모든 항목을 반복하고 관련 항목이 삽입 또는 업데이트 항목인지 확인합니다. 시트에 델타를 표시하는 색상 강조 표시가 있으므로이를 사용할 수 있다고 가정합니다. 또는 항목이 존재하는지 확인하기 위해 핵심 데이터를 조회 할 수 있습니다. 일단 내가 처리하고있는 것을 설정하면 데이터를 삽입하거나 업데이트하는 SQL 문을 생성하는 메서드를 호출 할 수 있습니다. 인서트는 매우 쉽고 델타 하이라이트를 사용하여 업데이트 항목에 대해 업데이트해야하는 필드를 결정할 수 있습니다.

SQL을 파일로 출력하거나 해당 행의 마지막 셀에 지정된 행의 SQL 테스트를 추가해도 문제가 없습니다.

샘플 코드, 예제, 방법 또는 어떤 방향 으로든 올바른 방향으로 나를 이끌어 줄 수있는 방향으로 가장 많은 도움이 될 것입니다. 나는 까다 롭지 않다. 내가 작업을 수행하기 위해 SQL을 생성한다는 기본 사명을 수행하기 위해 생각하지 못했던 기존 도구를 사용하지 않거나 사용하지 못하는 도구가 있다면, 나는 그것을 위해 모든 것입니다.

다른 정보가 필요하면 언제든지 문의하십시오.

건배,

스티브

+0

사용하려는 데이터베이스를 언급하는 것을 잊었습니다. –

+0

@Doc Brown - 감사합니다. MS SQL 2005에 대한 참조를 포함하도록 편집되었습니다. –

+0

반복해야 할 일입니까? –

답변

3

내가 제안 VSTO를 시도하기 전에, 간단하게하기 엑셀 VBA로 이러한 문제를 해결하는 방법을 경험을 얻을. IMHO는 Excel 개체 모델을 학습하는 가장 쉬운 방법입니다. 특히 매크로 레코더를 가지고 있기 때문에 더욱 그렇습니다. 나중에 C#, VSTO 또는 자동화로 전환해야한다고 생각할 때이 지식을 다시 사용할 수 있습니다 (Excel DNA).

엑셀 VBA를 들어

, 자습서 많이 여기에 하나, 거기 밖으로 :

http://www.excel-vba.com/excel-vba-contents.htm

당신이 VBA 프로그램에서 INSERT 또는 UPDATE와 같은 임의의 SQL 명령을 실행하는 방법을 알고 싶다면, 봐 이 SO 게시물에 :

여기 Excel VBA to SQL Server without SSIS

는 또 다른 SO Excel 스프레드 시트로는 SQL 서버에서 데이터를 얻을하는 방법을 보여주는 게시물 :

Accessing SQL Database in Excel-VBA

+0

감사합니다.나는 VSTO와 결혼하지 않았고 VBA는 아마도 현재 상황에서 저에게 효과가있을 것입니다. –

관련 문제