2017-05-11 7 views
0

엄청난 양의 데이터를로드하고 사전 처리 한 다음 소수의 사용자간에 공유하고 마지막으로 사용자로부터 다시 업데이트를 수집해야합니다. 엑셀 애드 인 C++을 사용 만든 - 이것은 내가 내 이전 프로젝트에서 무슨 짓을몇 명의 사용자가 공유하는 Excel (VSTO)의 데이터를 유지하는 방법은 무엇입니까?

  1. . 추가 기능 코드를 사용하여 메모리에 데이터를로드하고 처리했습니다. 각 유형의 데이터에 대해 처리 된 데이터를 시트에 보내고 새로운 Excel 파일을 저장했습니다. 이렇게하면 세 가지 유형의 데이터가 있으면 세 가지 새로운 Excel 통합 문서를 만들었습니다. 그런 다음 내 사용자가 새 통합 문서를 열고 변경 한 다음 버튼을 통해 변경 내용이 포함 된 텍스트 파일을 삭제했습니다. 주요 Excel은 업데이트 (텍스트 파일)에 대한 폴링을 유지하고 발견 된 즉시로드합니다. 그게 내 사용자로부터 업데이트를 되 찾는 방법입니다.

  2. 이전 프로젝트에서 내가 한 일에 대한 팬이 아니기 때문에 너무 많은 임시 파일이 생성됩니다 (물론 삭제할 수 있음). 현재 프로젝트에서 C# VSTO 통합 문서를 사용하여 Excel을 더 잘 제어 할 수 있습니다. 데이터를로드하고 나면 사용자에게 읽기 전용 모드로 동일한 Excel을 열어 줄 것을 요청할 것입니다. 그러면 변경 될 것입니다. 이것을 테스트하는 동안, 사용자의 Excel (읽기 전용으로 열림) 모드가로드 된 데이터를 보지 못한다는 것을 깨달았습니다. 그리고 그 변화는 메모리에 저장된 데이터를 업데이트하지 않습니다. 이것은 내가 무엇을하고 있는지 전혀 모른다는 것을 의미합니다.

여러분이 이걸 어떻게 달성 할 수 있는지 알고 있습니까? 나는 정말로 어떤 도움/힌트를 주셔서 감사하겠습니다.

답변

2

많은 사람들이 동일한 문서를 동시에 편집 할 수있는 경우 Excel은 소위 "공동 작성"모드를 지원합니다. 그러나 afaik,이 시나리오를 지원하려면 Share Point/Office Online 서버/OneDrive Business가 필요합니다 (무료가 아닌 Office 문서 서버 제품 필요).

VSTO를 사용하면 C++ 애드 인과 동일하게 수행 할 수 있지만 C#에서는 기능 집합이 1 : 1로 기본적으로 .NET 용 C++ COM Excel API를 래핑합니다.

그러나 온라인 버전의 Excel에는 javascript addins (현재 Office Addins라고 불리는 afaik)가 있습니다. 하지만 자바 스크립트로 "엄청난 양의 데이터"를 처리하고 싶지는 않습니다. 이러한 파일을 전송할 수있는 유일한 옵션이 아닌, 파괴되지 않은 : 문제는 임시 파일의 수는

경우 뭔가를 수정하지 마십시오

그래서 내가 말할 것을

은 좋은 규칙이있다 응용 프로그램 간의 데이터. 두 가지 응용 프로그램을 직접 연결하여 메시지/업데이트와 데이터를 교환 할 수 있습니다. 를 사용하여 네트워크, 누가 복음 :

하여 3 사용자는 여전히 유일한 실행 가능한 옵션이있을 수 있습니다 USB 스틱에 텍스트 파일을 교환, 3 개 버려진 섬에 아무것도 완전히 분리 사는 경우에 물론

...

나는 생각한다 "웹"솔루션은 다음과 같을 수 있습니다. 파일을 "공동 작성"가능한 서비스 (공유 지점, google shees, onedrive, officeonline 등)에 저장하십시오. 웹 작업을 통해 해당 저장소의 파일을 자동으로 업데이트하십시오. "네 번째"사용자가하는 것처럼.

+0

귀하의 제안에 많은 감사를드립니다, Nikolay. 내가 공유 지점 경로를 먼저 시도 할 것입니다, 그 이유가 작동하지 않는다면 나는 당신의 충고를 따를 것입니다. "깨지지 않은 것을 고쳐주지 마십시오.") – user3718192