Programing

사무실없이 C #에서 Excel 파일 만들기

lottogame 2021. 1. 6. 07:40
반응형

사무실없이 C #에서 Excel 파일 만들기


현재 Microsoft.Interop.Excel 참조를 사용하여 Excel 보고서를 생성하는 프로그램을 작성 중입니다. 내 개발 컴퓨터에는 Excel이 있지만 최종 사용자는 Office를 설치하거나 설치하지 않을 수 있습니다. Office가 최종 사용자 컴퓨터에 설치되지 않은 경우이 도구가 실패합니까? 아니면이 interop 서비스가 실제 응용 프로그램과 분리되어 있습니까?


Server / PC에 Excel이 설치되어 있지 않거나 외부 도구 (Excel Interop을 사용하지 않고 가능 합니다. C #에서 Excel (.XLS 및 .XLSX) 파일 만들기 참조 )를 사용하지 않는 한 실패 합니다. interop을 사용하려면 Excel이 설치되어 있어야합니다.


.xlsx (Office 2007 이상) 파일을 만드는 데 관심이 있다면 운이 좋을 것입니다. Office 2007+는 OpenXML을 사용합니다. 더 적절한 설명이 없기 때문에 .xlsx라는 zip 안에있는 XML 파일입니다.

Excel 파일 (2007+)을 가져 와서 .zip으로 이름을 바꾸면 열어서 살펴볼 수 있습니다. .NET 3.5를 사용하는 경우 System.IO.Packaging 라이브러리를 사용하여 관계 및 zip 파일 자체를 조작하고 linq에서 xml로 재생하여 xml (또는 더 편한 경우 DOM)을 사용할 수 있습니다.

그렇지 않으면 zip 파일 조작을위한 강력한 라이브러리 인 DotNetZip을 추천 합니다.

OpenXMLDeveloper 에는 OpenXML에 대한 많은 리소스가 있으며 여기에서 더 많은 것을 찾을 수 있습니다.

.xls (2003 이하)를 원할 경우 타사 라이브러리를 살펴 보거나 Excel을 설치하지 않고이를 달성하기 위해 파일 형식을 직접 배워야합니다.


Excel 2007을 사용하는 경우 EPPlus를 사용해보십시오 . 범위, 셀 스타일, 차트, 도형, 그림 및 기타 많은 항목을 지원합니다.


몇 가지 옵션이 있습니다.

  • NPOI- 무료이며 오픈 소스입니다.
  • Aspose- 확실히 무료는 아니지만 강력합니다.
  • 스프레드 시트 ML- 기본적으로 스프레드 시트를 만들기위한 XML입니다.

Interop을 사용하려면 Excel이 실행되고있는 컴퓨터에 Excel이 설치되어 있어야합니다. 서버 측 솔루션에서 이것은 끔찍할 것입니다. 대신 Excel을 설치하지 않고도 Excel 파일을 작성할 수있는 위와 같은 도구를 사용해야합니다.

사용자에게 Excel이 없지만 Excel을 읽을 수있는 도구 (예 : Open Office)가있는 경우 분명히 열 수 있습니다. Microsoft는 Excel 이없는 사용자를 위해 무료 Excel 뷰어를 제공합니다.


interop은 다른 것을 호출하고 상호 운용성 어셈블리이므로 무언가와 상호 운용됩니다.이 경우에는 Excel, 실제로 설치된 Excel입니다.

이 경우 예, Excel에 의존 하기 때문에 실행에 실패 합니다. Excel 함수를 호출하는 것입니다. 그들이 그것을 설치하지 않으면 ... 운이 없습니다.

2007 파일 형식이 괜찮다면 Excel없이 생성하는 방법이 있습니다. 다음은 몇 가지입니다.

그래도 말했듯이 이것은 2007 형식 이며 일반적으로 거래를 중단합니다.


OleDB를 사용하면 엑셀 파일을 아주 쉽게 만들고 읽고 편집 할 수 있습니다. 자세한 내용은 MSDN 문서를 참조하십시오.

http://msdn.microsoft.com/en-us/library/aa288452(VS.71).aspx

저는 OleDB를 사용하여 엑셀 파일을 읽었으며 파일을 만들 수 있다는 것을 알고 있지만 직접 해본 적은 없습니다.


FileHelpers 라이브러리 의 ExcelStorage 클래스를 사용할 수 있습니다. 매우 쉽고 간단합니다. 컴퓨터에 Excel 2000 이상이 설치되어 있어야합니다.

FileHelpers는 파일, 문자열 또는 스트림의 고정 길이 또는 구분 된 레코드에서 데이터를 가져 오거나 내보내는 데 사용하기 쉬운 무료 .NET 라이브러리입니다.

참조 URL : https://stackoverflow.com/questions/2654932/create-excel-files-from-c-sharp-without-office

반응형