설치하거나 참조에 추가하는 방법은 아래 참조바랍니다.
http://sudean.tistory.com/entry/OpenXMLSDK

SpreadsheetDocument  _document = SpreadsheetDocument.Open(_filePath, false);  //  ReadOnly로 파일을 오픈함.
IEnumerable<Sheet> sheets = _document.WorkbookPart.Workbook.Descendants<Sheet>();
if (sheets.Count() == 0) return false;  // 시트가 없으므로 나감.
WorksheetPart   _worksheetPart = (WorksheetPart)_document.WorkbookPart.GetPartById(sheets.First().Id);  // 첫번째 시트에 

Worksheet _worksheet = _worksheetPart.Worksheet;
SharedStringTable _sharedStrings = _document.WorkbookPart.SharedStringTablePart.SharedStringTable;

IEnumerable<Row> _dataRows = from row in _worksheet.Descendants<Row>()  // Linq을 이용해서 모든 Row가져오기.
                            where row.RowIndex > 1
                            select row;



이번에 OpenXML을 써봤습니다. 예전에 System.IO.Package가지고 쌩쇼를 했는데...
요놈은 나름 괜찮더군요.. 그리고 오픈소스의 Package로도 작업했는데... 너무 빈약하더군요..요놈 강추입니다.

잘 아시겠지만, 요 SDK을 사용하면 오피스가 설치되어 있지 않아도 데이터를 핸들링할 수 있어서 서버 사이드 프로그램에 유용합니다.

1. 설치
일단, 아래 MS 사이트에서 SDK 다운로드 받으시구요.
해당 dll을 참조에 추가합니다.
(저 같은 경우는 C:\Program Files (x86)\Open XML SDK\V2.0\lib\DocumentFormat.OpenXml.dll) 에 있네요..

http://www.microsoft.com/downloads/details.aspx?familyid=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en#filelist

2. 네임스페이스(NameSpace) 추가

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;

3. 실제 구현 샘플 코드(함수명 제외)

SpreadsheetDocument  _document = SpreadsheetDocument.Open(_filePath, false);  //  ReadOnly로 파일을 오픈함.
IEnumerable<Sheet> sheets = _document.WorkbookPart.Workbook.Descendants<Sheet>();
if (sheets.Count() == 0) return false;  // 시트가 없으므로 나감.

WorksheetPart   _worksheetPart = (WorksheetPart)_document.WorkbookPart.GetPartById(sheets.First().Id);  // 첫번째 시트에 해당하는 WorkPart을 가져온다.

 IEnumerable<ImagePart> imageParts = _worksheetPart.DrawingsPart.ImageParts;  // WorkPart에서 이미지 파트를 가져온다.
 if (imageParts.Count() == 0) return;

 ImagePart imagePart = imageParts.First(); //  guess.....First Picture 
 using (Stream stream = imagePart.GetStream())
 {
       using (Stream target = File.OpenWrite(targetPath))
       {
           CopyStream(stream, target);
         }
 }

// 해당 로컬에 파일을 쓴다.
  private static void CopyStream(Stream source, Stream destination)
 {
       byte[] buffer = new byte[0x1000];
       int read;
       while ((read = source.Read(buffer, 0, buffer.Length)) > 0)
       {
             destination.Write(buffer, 0, read);
       }
  }




 


Command 창에서 sn.exe로 PublicKeyToken을 가져올 수 있지만, 현재 작업중인 프로젝트의 dll로 부터  PublicKeyToken을 쉽게 가져올 수 있는 간단한 방법이 있습니다.

1. Visual Studio에 확장 도구로 등록하기
     [Tool] - [External Tools...] 에서 아래와 같이 등록합니다.
     Command에서는 sn.exe의 경로를 지정합니다.( 위치를 모르면 탐색기에서 검색...)
     다른 옵션은 화면에 보이는 데로 설정합니다.


2. [Tools] 메뉴에 추가된 Get PublicKeyToken을 선택
    Output  윈도우에 PublicKeyToken이 표시됩니다.