2017-12-25 25 views
0

버튼을 누르면 일부 셀의 내용이 변경되는 Excel 추가 기능이 코딩되었습니다. 이제 이러한 대체 작업이 완료된 후에 통합 문서를 새 파일에 저장하는 기능을 추가하려고합니다.Excel 통합 문서를 VSTO 추가 기능에 저장 C#

여기가 내 방식이고, 어떻게 든 상상했던 것처럼 작동하지 않습니다.

내 ThisAddIn.cs에서 파일을 저장하는 코드입니다 :

public static void saveasnewfile() 
     { 
      Globals.ThisAddIn.Application.ActiveWorkbook.SaveCopyAs(@"C:\XXXX.XLS"); 
     } 

을 그리고이 함수를 호출하는 방법이있다 (예를 들어 버튼을 누를 때) : 이제

//... 
ThisAddIn.saveasnewfile(); 
//... 

이 버튼을 누르면 다음과 같은 오류 메시지가 나타납니다.

Microsoft Excel에서 'C : \ XXXX.XLS'파일에 액세스 할 수 없습니다.

• 파일 이름 또는 경로가 존재하지 않습니다. ? 파일이 다른 프로그램에서 사용 중입니다. ? 저장하려는 통합 문서의 이름이 현재 열려있는 통합 문서입니다.

내게 이상하게 보입니다. 물론 파일을 만들고 싶기 때문에 존재하지 않습니다 ...

그래서 나는 무엇을 놓치고 있습니까?

사용자에게 savefiledialog가있는 경로를 묻는 기능을 추가하고 싶습니다. 그래서 몇 가지 팁뿐만 아니라이 도움이 될 것이다 :

+0

당신이 정말하려고 C의 루트에 글을 쓰는 방법 : – rene

+0

테스트 용 예. –

+0

폴더를보십시오, C : \ Temp 또는 당신이 창조 한 다른 어떤 폴더 말하십시오. – rene

답변

0

해결책 : 나는 SaveFileDialog와 구현 방법은 다음과 같은 일에 비틀 수있는 사람들을위한

은 다음과 같습니다

var saveDialog = new SaveFileDialog() //create new instance of savefiledialog 
{ 
    Title = "Save As", //sets title of dialog box 
    Filter = "Excel Worbook (*.xlsx)|*.xlsx", //filter for .xlsx files 
    AddExtension = true, //automatically adds the .xlsx extension 
    CheckPathExists = true //checks if the given path really exists 
} 

if (saveDialog.ShowDialog() == DialogResult.OK) 
{ 
Globals.ThisAddIn.Application.ActiveWorkbook.SaveCopyAs(saveDialog.FileName); 
}