2011-03-17 7 views
2

일부 데이터를 Excel 스프레드 시트에 쓰는 프로그램을 만들어야합니다. 이름, 성, 전화 번호, 줄 당 전자 메일의 줄을 따라 기본 항목이 각 열과 함께 열에 있습니다.C#을 사용하여 Excel 스프레드 시트에서 읽고 쓰려면

어디서부터 시작해야할지 모르겠다. 누군가가 어떤 어셈블리를 참조 할 지 말해 줄 수 있고 웹 사이트 나 C# 프로그램을 통해 Excel 스프레드 시트에서 데이터 쓰기/읽기를 다루는 책을 가리킬 수 있습니다.

감사합니다.

답변

0

xls로 저장하면 왜 CSV 파일을 만들지 않습니까? 네이티브 엑셀은 필수입니까?

1

필요 세련의 수준에 따라 :

  • 은 쉼표로 구분 된 값 (CSV) 텍스트 파일을 작성합니다. 엑셀이 열리지 만 서식을 얻지 못한다.
  • HTML 테이블을 파일에 쓰고 파일 이름을 filename.xls로 지정합니다.
  • format that Excel can open에 XML 파일을 작성하십시오.
  • Excel을 직접 호출하고 스프레드 시트를 작성하십시오. (체한의 대답 참조)
7

Microsoft.Office.Interop.Excel.

가정 어딘가에 데이터의 저장소를 가지고 있고, 당신의 모델이

Application excelapp = new Application(); 
excelapp.Visible = true; 

_Workbook workbook = (_Workbook)(excelapp.Workbooks.Add(Type.Missing)); 
_Worksheet worksheet = (_Worksheet)workbook.ActiveSheet; 

worksheet.Cells[1, 1] = "First Name"; 
worksheet.Cells[1, 2] = "Last Name"; 
worksheet.Cells[1, 3] = "Email"; 
worksheet.Cells[1, 4] = "Phone Number"; 

int row = 1; 

foreach (var contact in contacts) 
{ 
    row++; 

    worksheet.Cells[row, 1] = contact.Firstname; 
    worksheet.Cells[row, 2] = contact.Lastname; 
    worksheet.Cells[row, 3] = contact.Email; 
    worksheet.Cells[row, 4] = contact.PhoneNumber; 
} 

excelapp.UserControl = true; 

처럼 엑셀로 가져올 수 있습니다

class Contact 
{ 
    public string Firstname { get; set; } 
    public string Lastname { get; set; } 
    public string Email { get; set; } 
    public string PhoneNumber { get; set; } 
} 

같은 당신은 엑셀 상호 운용성에 대한 자세한 내용을보실 수 있습니다 보이는 여기에 라이브러리가 있습니다 : http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel%28v=office.11%29.aspx

+0

감사합니다. – Aaron

0

언급 한 것처럼 Excel 자동화는 프로그래밍 방식으로 스프레드 시트를 만드는 Microsoft의 표준입니다. 이 방법의 단점은 COM interop 계층을 사용하므로 코드가 실행되는 각 서버에 대해 Excel (및 라이센스)이 필요하다는 것입니다.

더 나은 결과를 위해 훌륭한 오픈 소스 프로젝트를 찾을 수는 없었지만, GemBox's spreadsheet API's을 잘 작성된 상업용 옵션으로 추천 할 수 있습니다 (기본 값은 free version이며 테스트에 유용합니다). 이 접근법에 대한 한 가지 중요한 점은 100 % 관리 코드이므로 배포가 조금 깔끔하다는 것입니다.

도서관에 지출 할 예산이 있다면 선택하는 것이 좋습니다.

관련 문제