MS Excel이 PC에 존재하는지 프로그래밍 방식으로 확인하는 방법
MS Excel을 실행해야 하는 어플리케이션이 있습니다.그렇지 않으면 크래쉬가 됩니다.그래서 엑셀이 사용자의 컴퓨터에 설치되어 있지 않은지 확인하고 경고하고 싶습니다.
이거 어떻게 해?
Type officeType = Type.GetTypeFromProgID("Excel.Application");
if (officeType == null)
{
//no Excel installed
}
else
{
//Excel installed
}
간단한 수정으로 예외를 포착하여 적절한 오류 처리를 구현할 수 있습니다.그런 다음 사용자에게 알릴 수 있습니다.
const string ASSEMBLY2003 = "Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c";
static bool IsAssemblyInstalled(string assembly)
{
try
{
s_assemblyExcel = Assembly.Load(assembly);
return true;
}
catch
{
return false;
}
}
이것으로 충분합니다.모든 버전에 대해 실행해 주세요.
이렇게도 할 수 있고
RegistryKey key = Registry.ClassesRoot;
RegistryKey excelKey = key.OpenSubKey("Excel.Application");
bool excelInstalled = excelKey == null ? false : true;
이 블로그 투고에서는, Excel 이 레지스트리(VB) 경유로 인스톨 되고 있는지를 확인하는 방법에 대해 설명합니다.NET 코드는 C#으로 쉽게 변환할 수 있습니다).기본적으로는, 다음의 방법으로 검증합니다.HKEY_CLASSES_ROOT\Excel.Application\CurVer
열쇠.
이것은 당신의 질문에 대한 답변은 아니지만, 다른 방향에서 해결합니다.
MS Excel을 꼭 설치해야 하나요, 아니면 단순히 Excel 파일을 표시할 수 있어야 하나요?예를 들어 LibreOffice나 이와 유사한 Excel 파일 호환 어플리케이션이 설치되어 있는 경우, 괜찮으시겠습니까?
사용자에게 엑셀 파일과 PDF 파일을 열어주는 앱이 있습니다.이러한 파일을 표시하기 위해 컴퓨터에 어떤 소프트웨어가 설치되어 있는지는 별로 신경 쓰지 않습니다.그건 우리가 상관할 바가 아니에요.우리는 단순하게Process.Start(...)
OS에 맡길 수 있습니다.
콜을 랩으로 정리합니다.Try/Catch
이 콜로 에러가 발생했을 경우, 유저에게의 제안(Office(Excel)이 인스톨 되어 있지 않거나, PDF 뷰어가 없는 경우 등)을 블록 해 주세요.기본적으로 사용자의 컴퓨터가 작업을 수행할 수 있을 만큼 완전한 상태인지 여부를 사전에 식별하기보다는 작업을 수행할 수 있을 것으로 생각되지만, 일단 검출된 상태가 아닐 경우 대처합니다.
언급URL : https://stackoverflow.com/questions/7123196/how-to-check-programmatically-if-ms-excel-exists-on-a-pc
'IT' 카테고리의 다른 글
커스텀 루티드명령어를 WPF에 추가하려면 어떻게 해야 하나요? (0) | 2023.04.18 |
---|---|
Windows에서 PATH에 Python 추가 (0) | 2023.04.18 |
Git: 마스터에서 스테이징되지 않은/커밋되지 않은 변경으로 브랜치를 만듭니다. (0) | 2023.04.13 |
Excel에서 VBA 어레이에 고유한 값 입력 (0) | 2023.04.13 |
셸의 한 줄에 여러 명령어 실행 (0) | 2023.04.13 |