Excel Interop으로 기존 Excel 파일을 저장/덮어쓰는 방법 - C#
기존 파일을 변경사항으로 덮어쓸지 묻는 메시지를 표시하지 않고 Excel interop(이 경우 워크시트를 추가합니다)을 통해 Excel 스프레드시트에 변경사항을 저장할 수 있는 방법이 있습니까?사용자가 내 응용프로그램에서 스프레드시트가 열려 있는 것을 보지 않았으면 합니다. 따라서 파일을 덮어쓸 것인지 묻는 메시지 상자가 표시되는 것은 사용자에게 매우 부적절하고 혼란스러울 수 있습니다.
저는 워크북을 사용하고 있습니다.다른 이름으로 저장(파일 로케이션) 메서드입니다.
Excel interop을 위한 COM 참조 객체를 초기화하는 곳입니다.
private Excel.Application app = null;
private Excel.Workbook workbook = null;
public Excel.Workbook Workbook
{
get { return workbook; }
set { workbook = value; }
}
private Excel.Worksheet worksheet = null;
private Excel.Range workSheet_range = null;
엑셀 파일을 닫기/저장하기 위해 사용하고 있는 코드는 아래와 같습니다.workbook.close() 메서드 행은 처리되지 않은 예외를 발생시키는 것으로 보고된 행입니다.
workbook.Close(true, startForm.excelFileLocation, Missing.Value);
Marshal.ReleaseComObject(app);
app = null;
System.GC.Collect();
기본적으로 필요한 것은 Excel App입니다.디스플레이 경고 = 거짓 - 다음과 같은 방법이 있습니다.
ExcelApp.DisplayAlerts = False
ExcelWorkbook.Close(SaveChanges:=True, Filename:=CurDir & FileToSave)
이것이 도움이 되길 바랍니다.
이 코드만 재정의 중지 경고 또는 이미 사용 중인 템플릿에 필요합니다.
Excel App.디스플레이 경고 = 거짓
이것이 오래된 게시물이라는 것을 알지만, 저는 미래에 좌절감을 주지 않고 이 일을 할 수 있는 방법을 공유하고 싶었습니다.
첫 번째로 사용하는 것이 마음에 들지 않는 점:Excel App.디스플레이 경고 = 거짓
이 플래그를 설정하면 프로그램뿐만 아니라 Excel 파일에도 이 속성이 설정됩니다.즉, X를 클릭하여 파일을 변경하고 닫으면 파일을 저장하라는 메시지가 표시되지 않고 나중에 문제가 발생합니다.또한 Excel이 일반적으로 게시하는 다른 프롬프트도 비활성화됩니다.
저장하기 전에 파일이 있는지 확인하는 것이 좋습니다.
if (File.Exists(SaveAsName))
{
File.Delete(SaveAsName);
}
언급URL : https://stackoverflow.com/questions/13055369/how-to-save-overwrite-existing-excel-file-with-excel-interop-c-sharp
'source' 카테고리의 다른 글
로컬 Git 저장소에서 원격 Git 저장소를 만드는 방법은 무엇입니까? (0) | 2023.06.04 |
---|---|
psql에서 스크립트 변수를 어떻게 사용합니까? (0) | 2023.06.04 |
텍스트 편집 외부를 클릭한 후 안드로이드에서 소프트 키보드를 숨기는 방법은 무엇입니까? (0) | 2023.06.04 |
MongoDB.service가 결과 종료 코드와 함께 실패했습니다. (0) | 2023.05.25 |
경고(예산), 초기에 대한 최대값 초과 (0) | 2023.05.25 |