MS Office를 설치하지 않고 Interop 라이브러리를 사용하지 않고 서버의 MS Office 파일을 어떻게 읽을 수 있습니까?

StackOverflow https://stackoverflow.com/questions/153079

문제

Interop 라이브러리는 느리고 MS 사무실이 설치되어 있어야합니다. 여러 번 서버에 MS Office를 설치하고 싶지 않습니다.

사용하고 싶습니다 아파치 포이,하지만 저는 .NET에 있습니다.

사무실 파일에 "정보 저장"이 아닌 파일의 텍스트 부분 만 추출하면됩니다.

매우 큰 문서 라이브러리가 있다고 말해야하며 최신 XML 파일로 변환 할 수 없습니다.

Binaries 파일에 대한 파서를 쓰고 싶지 않습니다. Apache Poi와 같은 도서관이 우리를 위해 이것을합니다. 불행히도, 그것은 Java 플랫폼에만 해당됩니다. 어쩌면 나는이 응용 프로그램을 Java로 작성하는 것을 고려해야합니다.

나는 여전히 .NET에서 POI에 대한 오픈 소스 대안을 찾지 못하고 있습니다. 나는 Java에 내 자신의 응용 프로그램을 작성할 것이라고 생각합니다.

도움이 되었습니까?

해결책

모든 MS Office 버전의 경우 :

새 사무실 (2007) :

오래된 사무실 (2007 년 이전)의 경우 :

다른 팁

확인하십시오 구성 요소를 바탕으로. 서버에 전체 사무실 설치를하지 않고 Interop 기능을 모방하도록 설계되었습니다.

새로운 DOCX 형식은 본질적으로 XML 기반 파일이므로 구조를 알면 표준 XML DOM 기술로 프로그래밍 방식으로 작성하고 조작 할 수 있습니다.

파일은 기본적으로 대체 파일 확장자가있는 zip 아카이브입니다. 사용 System.IO.Packaging 네임 스페이스 파일의 내부 요소에 액세스하려면 XmlDocument 조작을 수행합니다.

이를 수행 할 수있는 예가 있으며 SourceForge의 Office Open XML 프로젝트는 영감을 얻을 가치가 있습니다.

구형 바이너리 형식의 경우, 이들은 MS에 대한 독점적이며, 내부에서 컨텐츠를 얻을 수있는 유일한 방법은 사무실 객체 모델 (사무실 설치가 필요함) 또는 제 3 자 파일 변환기/파서를 통한 것입니다.

불행히도이 파일과 함께 작업 할 .NET 플랫폼에 대한 첫 번째 파티와 기본은 없습니다.

그 파일과 어떤 관련이 있습니까? 사용자에게 스트리밍하려면 기본 파일 스트림이 정상입니다. 사용자가 사무실에서 열 수 있도록 새 파일 (템플릿을 기준으로)을 만들려면 다양한 파일이 있습니다. 작업 계정.

실제로 웹 사이트에서 사용하기 위해 사무실 문서에 데이터를 보관하고 있다면 잘못하고 있습니다. 사무실 문서, Excel 스프레드 시트 및 액세스 데이터베이스조차도 대화식 웹 사이트에서 사용하기에 적합한 선택이 아닙니다.

문서가 Word 2007 형식 인 경우 System.IO.Packaging Library를 사용하여 프로그래밍 방식으로 상호 작용할 수 있습니다.

rwendi

Java 세계에는 또한도 있습니다 Jexcelapi. 그것은 내가 볼 수 있었던 것에서 POI보다 훨씬 더 깨끗하게 쓰여졌습니다. 따라서 해당 코드의 .NET 포트조차도 의문의 여지가 없을 것입니다. 물론 손에 충분한 시간이 있습니다.

오픈 오피스.

서버에 대한 라이센스에 돈을 쓰거나 서버와 관련된 취약점을 갖지 않고도 프로그램에 대해 프로그램을 진행할 수 있습니다.

Microsoft Excel 통합 문서는 통합 문서를 데이터베이스 테이블처럼 보이게하는 ODBC 드라이버 (또는 OLE DB 드라이버입니까? 기억할 수 없음)를 사용하여 읽을 수 있습니다. 그러나 사무실 스위트 자체없이 해당 운전자가 사용할 수 있는지 모르겠습니다.

OpenOffice를 사용할 수 있습니다. 명령 줄 변환 도구가 있습니다.

변환 Howto

요컨대, 당신은 OpenOffice에서 매크로를 정의하고 OpenOffice에 대한 명령 줄 인수와 함께 매크로라고 부릅니다. 이 인수에서 로컬 파일의 이름 (사무실 파일)이 인코딩됩니다.

그것은 큰 수술은 아니지만, 그것은 실력이 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top