2017-12-19 11 views
2

저는 Excel에서 셀을 읽거나 쓰려면 사람들이 사용하는 두 가지 방법을 발견했습니다.C#을 사용하여 Excel에서 셀을 읽는 방법은?

선언 :

Excel.Application ExcelApp = new Excel.Application(); 
Excel.Workbook srcWorkBook = ExcelApp.Workbooks.Open(@"C:\test.xls"); 
Excel.Worksheet srcWorkSheet = srcWorkBook.Worksheets[1]; 
Excel.Range srcRange = srcWorkSheet.UsedRange; 

구문 1 :

srcWorkSheet.Cells[1, 1].value2 = "foo bar"; 

구문 2 : 사용하는 가장 좋은 방법 중 하나

srcRange.Cells[2, 2].Value2 = "foo bar"; 

? 또는 .NET에서 모두 괜찮습니까?

+0

가장 좋은 옵션은'Interop' 라이브러리를 전혀 사용하지 않고 .NET 내에 완전히 구현 된 [EPPlus] (https://www.nuget.org/packages/EPPlus)와 같은 것을 사용하는 것입니다. –

+0

@MassimilianoKraus NPOI 프로젝트는 어떻습니까? – Jarkid

+1

나는 그것을 사용한 적이 없지만 GitHub 페이지에서 재미있을 것 같습니다. 또한 xlsx뿐만 아니라 docx 파일도 처리 할 수 ​​있습니다. 시간이 있다면, 둘 다 시도해보고 비교해보십시오. –

답변

5

두 가지 방법은 매우입니다.

srcWorkSheet.Cells[1, 1].value2 = "foo bar"; 
  • 1. 사용은 첫 번째 워크 시트의 A1 셀을 참조.


    srcRange.Cells[2, 2].Value2 = "foo bar"; 
    
    • 2.에서 사용

  • MSDN Worksheets.Cells property Excel은 2 행의 셀은 UsedRange 2. 열 걸린다. Excel에서 UsedRangeB2:D5 인 경우 C3에서 값을 둘 것 다음 Range 클래스이기 때문에

enter image description here


  • Range라는 변수를 갖는 정말 아니요 좋은 아이디어. WorkSheetWorkBook도 마찬가지입니다.
+0

. 이것은 예를 들어 변수 이름 일뿐입니다. – Jarkid

+1

@ Jarkid - 안녕하세요. 변수에 관해서는 요점은 처음에는 올바르게 이해하지 못했기 때문에 다른 사람들도 문제를 이해할 것이라고 생각했습니다. – Vityata

+1

감사합니다. 사람들이 오해하지 않도록하기 위해 변수 이름을 업데이트했습니다. – Jarkid

1

두 옵션 중 하나를 사용할 수 있지만 워크 시트의 레이아웃을 수정해야하는 즉시 지저분 해집니다.

옵션 인 경우 명명 된 범위를 추가하고 싶습니다. 이것은 통합 문서의 "시작"상태를 수정할 수있는 서식 파일을 사용하는 경우 특히 유용합니다.

일련의 열이 있고 그 중 하나에 "foo"값이 들어 있다고 가정 해 보겠습니다. "fooColumn"과 같은 이름을 전체 열 또는 열의 맨 위 셀에 추가 할 수 있습니다.

그런 다음 당신은 당신이 당신의 워크 시트에 주변 요소를 이동하는 경우 수동으로 사방에 열 또는 행 번호를 편집 할 필요가 당신을 보호

worksheet.Range("fooColumn").Column 

를 사용하여 열 번호를 얻을 수 있습니다.


두 번째로 다른 사람들은 Interop 대신 EPPlus를 사용합니다. 여전히 명명 된 범위를 사용할 수 있습니다. 그러나 EPPlus는 좋으며 Interop은 COM 개체가 출시되지 않을 때 모든 종류의 문제를 일으킬 수 있습니다. Interop은 파일을 조작하는 응용 프로그램을 자동화합니다. EPPlus는 파일과 함께 작동합니다.