2012-06-19 2 views
0

여기에서 살펴본 여러 가지 솔루션을 시도했지만 여전히 Excel 파일을 작성하는 데 문제가 있습니다.다른 사용자와 충돌하는 Excel 파일 작성

나는 처음에는 작업 파일에 복사 할 템플릿 xlsx 파일이 있습니다. 그때 나는이 시점에서

 connection.Close(); 
    } 

이의 사용 블록이 종료하기 전에이

using (var connection = new OleDbConnection(string.Format(
     "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Mode=ReadWrite;Extended Properties=\"Excel 12.0;HDR=YES\";", 
     outputfileName))) 
    { 
     connection.Open(); 
     var command = connection.CreateCommand(); 

같은 블록이 Eventualy

command.ExecuteNonQuery(); 

일련의 다음이, 내 응용 프로그램이 나타납니다 Excel 파일에 매달려 있어야합니다. 수동으로 또는 System.Diagnostics.Process을 통해 파일을 열려고하면 "다른 사용자가 파일을 편집 할 수 없습니다"라는 메시지가 나타나고 "OK"라고 응답해도 여전히 빈 템플릿 만 표시됩니다.

실제로 앱을 종료하면 Excel 파일이 완전하고 액세스 가능한 것으로 보입니다. 분명히 연결을 닫으면 버퍼를 비우고 파일을 해제 할 수 없습니다.

내가 이해하고 싶은 것은 파일에 대한 보류를 해제하는 방법입니다. 실제로 내 앱에서 프로세스를 사용하여 사용자가 파일을 열거 나 직접 열 수 있도록 할 수 있습니다. .

+0

FileStream.Unlock 메서드를 사용해보십시오.이 링크를 확인하십시오. http://msdn.microsoft.com/en-us/library/system.io.filestream.unlock%28v=vs.100%29.aspx – MMK

답변

0

EPPlus는 사용하기 쉽고 Excel을 전혀 열지 않으므로 잠금 문제가 해결되었습니다. 이것은 실제로 질문에 답변하지는 않지만, 특히 EPPlus에 글쓰기가 OLEDB를 통해 Excel에 글쓰기를하는 것보다 훨씬 쉽기 때문에 해결할만한 해결 방법입니다.

관련 문제