programing

엑셀 서버측은 어떻게 사용하나요?

muds 2023. 8. 24. 22:32
반응형

엑셀 서버측은 어떻게 사용하나요?

클라이언트가 스프레드시트 계산을 "웹에서 사용"하려고 합니다. 사용자는 특정 셀의 값을 지정한 다음 다른 셀의 결과 값을 표시합니다.

(사용자에게 "스프레드시트와 같은" 인터페이스를 보여주기를 원하지 않습니다.UI 질문이 아닙니다.)

그들은 많은 양의 시트 위에 많은 양의 계산이 있는 거대한 스프레드시트를 가지고 있습니다.하지만 결국 두 가지만 중요합니다. (1) 한 장에 있는 두 개의 셀에 숫자를 넣는 것과 (2) 다른 한 장에 있는 두 개의 셀에 해당하는 숫자를 얻는 것입니다.나머지는 블랙박스입니다.

사용자가 원하는 숫자를 입력할 수 있는 UI를 제시한 후 엑셀 파일을 프로그래밍 방식으로 열고 숫자를 설정한 후 다시 계산하라고 말하고 결과를 읽어내려가고 싶습니다.

이것이 가능합니까?이것을 더 쉽게 만드는 상용 부품이 있습니까?그들의 함정은 제가 고려하지 않는 건가요?

(Office Automation을 사용하여 이 작업을 수행할 수 있지만 서버 측에서는 사용자 등의 상황에서 실행하려고 하므로 권장되지 않습니다.)

많은 사람들이 제가 공식을 코드로 다시 만들어야 한다고 말합니다.하지만, 이것은 놀라울 정도로 복잡할 것입니다.

가능하지만 권장되지는 않습니다(그리고 공식적으로 지원되지 않음).

COM 또는 를 통해 Excel과 상호 작용할 수 있습니다.NET Primary Interop Assembly, 그러나 이것은 클라이언트 측 프로세스입니다.

서버 측에서는 디스플레이나 바탕 화면을 사용할 수 없으며 예기치 않은 대화 상자(예:)로 인해 웹 앱이 중단되고 앱이 불안정하게 작동합니다.

또한 각 요청에 Excel 프로세스를 첨부하는 것은 정확하게 리소스가 부족한 접근 방식이 아닙니다.

블랙박스를 해결하고 적절한 프로그래밍 언어로 재구현하는 것이 "더 신뢰할 수 있고 더 빠른" 옵션임이 분명합니다.

관련 자료: KB257757: 서버측 사무실 자동화에 대한 고려사항

서버 측에서는 인터럽트를 사용하고 싶지 않을 것입니다. 클라이언트 측에서는 인터럽트로 사용하는 것이 충분히 좋지 않습니다.

두 가지 옵션을 볼 수 있습니다.

스프레드시트 논리를 파악합니다.이는 비즈니스 로직을 알려진 양으로 만들어 장기적으로 도움이 될 수 있으며, 단기적으로는 스프레드시트에 실제로 버그가 있다는 것을 알게 될 수 있습니다(수년 동안 사용된 수많은 괴물 스프레드시트에 단순한 버그가 있음이 밝혀짐). 모두가 정답이 틀림없다고 생각했습니다.

스프레드시트기어를 평가합니다.NET은 기본적으로 Excel 없이 모든 작업을 수행하는 interop을 대체합니다(Excel의 비시각적 논리 및 IO의 상당 부분을 에서 복제함).NET)

비록 이것은 ASP를 사용하면 확실히 가능합니다.NET, 그것은 매우 충고할 수 없습니다.확장이 불가능하고 동시성 오류가 발생하기 쉽습니다.

스프레드시트 계산을 분석하여 중복하는 것이 가장 좋습니다.물론, 이 작업에 소요되는 시간을 좋아하지는 않겠지만, 보다 사용 가능한 시스템을 제공할 것입니다.

또는 웹 사이트에서 사용자에게 스프레드시트를 제공하기만 하면 됩니다. 이 경우에는 거의 아무것도 하지 않습니다.

편집: 이해 관계자들이 정말로 엑셀 서버 측을 고집한다면, @John Sanders가 제안하는 바와 같이 엑셀 서비스를 잘 살펴보시기를 제안합니다.원하는 모든 것을 얻을 수는 없지만 상당한 양을 얻을 수 있으며, ASP를 사용하여 서버 측에서 수행하려고 할 때 발생할 몇 가지 문제를 해결할 수 있습니다.그물.

그렇다고 해서 만병통치약이 아니라는 것은 아닙니다. 마일리지는 분명히 달라질 것입니다.Sharepoint는 구입하거나 유지보수하는 데 비용이 많이 들지 않습니다.사실 SharePoint를 활용하면 단기 비용을 장기 비용으로 쉽게 줄일 수 있지만, 요구사항에 맞는 최적의 옵션이 될 수 있습니다.

저는 여전히 당신이 당신의 모든 논리를 별도로 코딩하는 것에 찬성하는 것을 제안합니다.NET 모듈.이렇게 하면 서버 과 클라이언트 측 모두에서 사용할 수 있습니다.Excel은 계산을 COM 개체로 쉽게 전달할 수 있으며 를 매우 쉽게 게시할 수 있습니다.COM 개체로서의 NET 라이브러리.결국, 훨씬 더 유지보수가 가능하고 사용 가능한 아키텍처를 갖게 될 것입니다.

서버 측에서 엑셀 시트를 조작하는 것이 타당한지에 대한 논의를 무시하는 것은 아마도 이를 수행하는 한 가지 방법이 다음을 채택하는 것처럼 보일 것입니다.

마이크로소프트.사무실.인터럽트.Excel.dll

이 라이브러리를 사용하여 Excel에 스프레드시트를 열고 내용을 변경하여 읽도록 지시할 수 있습니다.NET. WinForm 애플리케이션에서 라이브러리를 사용한 적이 있으며 ASP에서도 사용할 수 있을 것 같습니다.그물.

그럼에도 불구하고, 이미 언급된 동시성 문제를 고려해 보십시오...하지만 시트에 자주 접근하지 않는다면 왜...

가장 간단한 방법은 다음과 같습니다.

Excel 워크북을 Google Docs에 업로드합니다. 제 경험으로는 매우 깨끗합니다.

Google 스프레드시트 데이터 API를 사용하여 데이터를 업데이트하고 숫자를 반환합니다.

다음 링크를 사용하여 이 작업을 시작할 수 있습니다.

http://code.google.com/apis/spreadsheets/overview.html

다른 사람들보다 더 단호하게 말씀드리겠습니다: Excel 서버 측면을 사용하지 마십시오.데스크톱 응용프로그램으로 사용하도록 설계되었으며, 이는 서로 다른 임의의 스레드, 한 번에 여러 개의 스레드에서 사용하도록 설계되지 않았음을 의미합니다.서버에서 Excel(또는 다른 Office 데스크톱 제품)을 사용하는 것보다 스프레드시트를 직접 작성하는 것이 좋습니다.

이것이 엑셀 서비스가 존재하는 이유 중 하나입니다.MSDN에 대한 빠른 검색에서 http://blogs.msdn.com/excel/archive/category/11361.aspx 링크가 발견되었습니다.카테고리 목록이므로 해당 주제에 대한 블로그 게시물 목록이 포함되어 있습니다.Microsoft를 참조하십시오.사무실.Excel.Server.웹 서비스 네임스페이스입니다.

사용자가 로컬 시스템에서 스프레드시트를 열어 놓고 웹 사이트에서 해당 로컬 스프레드시트를 조작하려고 하는 것처럼 들립니다.

만약 그렇다면, 당신은 정말 그렇게 할 수 없습니다.시트를 서버에 업로드하고 변경된 새 버전을 다운로드하도록 요구하지 않는 한 Office 자동화도 도움이 되지 않습니다.

당신이 할 수 있는 것은 계산을 하기 위한 웹 서비스를 만들고 그 서비스와 대화하기 위해 엑셀 시트에 몇 개의 vba 또는 vsto 코드를 추가하는 것입니다.

언급URL : https://stackoverflow.com/questions/726432/how-do-you-use-excel-server-side

반응형