728x90
반응형
[C#] 특정 경로(웹서버)에 저장되어 있는 엑셀 파일 양식 불러오기
1. 먼저 Localhost영역의 디렉토리를 검색한다.
- 검색한 디렉토리(directory)에 엑셀 양식을 다운로드할 예정이다.
// 파일이 저장될 경로/디렉토리
string filePath = "C:\\디렉토리\\";
string fileName = "파일명_"+this.GetType().Name + ".xls";
// 해당 디렉토리가 없으면 디렉토리를 생성한다.
if (!System.IO.Directory.Exists(filePath))
{
System.IO.Directory.CreateDirectory(filePath);
MessageBox.Show(filePath + " 디렉토리 생성");
}
2. 특정 경로에서 엑셀 양식을 다운로드 한다.
// 엑셀 양식 파일을 다운로드 한다.
try
{
string url = "http://양식을 다운로드할 경로/excel/" + fileName;
System.Net.WebClient webClient = new System.Net.WebClient();
webClient.DownloadFile(url, filePath + fileName);
} catch (System.Net.WebException we) {
MessageBox.Show(we.Message +"\n다운로드 에러\n파일이 이미 실행중인지 확인 요망\n");
}
3. FileStream객체로 파일 상태를 생성 및 열기 모드로 확인한다.
- FileStream이 열려 있는지 체크, 이미 열려있으면 IOException으로 캐치한다.
// using을 사용하여 파일 리소스 자동으로 Dispose 함.
try
{
using (System.IO.FileStream fs = new System.IO.FileStream(filePath + fileName, System.IO.FileMode.OpenOrCreate)) { }
}
catch (System.IO.IOException ie)
{
//MessageBox.Show(ie.Message);
MessageBox.Show("엑셀양식(" + fileName + ") 파일이 이미 열려 있습니다.");
return;
}
4. 엑셀파일을 실행한다.
// 엑셀 파일을 실행한다.
try
{
System.Diagnostics.ProcessStartInfo run = new System.Diagnostics.ProcessStartInfo();
run.FileName = filePath+fileName;
System.Diagnostics.Process.Start(run);
}
catch
{
MessageBox.Show("파일을 실행할 수 없습니다.");
}
정리하면,
1) 로컬에 특정 디렉토리를 확인 및 생성
2) 외부 서버 등에서 양식을 다운로드
3) 파일 리소스 확인
4) 엑셀 파일 실행
아래는 전체 소스코드이다.
private void button8_Click(object sender, EventArgs e)
{
// 파일이 저장될 경로/디렉토리
string filePath = "C:\\디렉토리\\";
string fileName = "파일명_"+this.GetType().Name + ".xls";
// 해당 디렉토리가 없으면 디렉토리를 생성한다.
if (!System.IO.Directory.Exists(filePath))
{
System.IO.Directory.CreateDirectory(filePath);
MessageBox.Show(filePath + " 디렉토리 생성");
}
// 엑셀 양식 파일을 다운로드 한다.
try
{
string url = "http://양식을 다운로드할 경로/excel/" + fileName;
System.Net.WebClient webClient = new System.Net.WebClient();
webClient.DownloadFile(url, filePath + fileName);
} catch (System.Net.WebException we) {
MessageBox.Show(we.Message +"\n다운로드 에러\n파일이 이미 실행중인지 확인 요망\n");
}
// using을 사용하여 파일 리소스 자동으로 Dispose 함.
try
{
using (System.IO.FileStream fs = new System.IO.FileStream(filePath + fileName, System.IO.FileMode.OpenOrCreate)) { }
}
catch (System.IO.IOException ie)
{
//MessageBox.Show(ie.Message);
MessageBox.Show("엑셀양식(" + fileName + ") 파일이 이미 열려 있습니다.");
return;
}
// 엑셀 파일을 실행한다.
try
{
System.Diagnostics.ProcessStartInfo run = new System.Diagnostics.ProcessStartInfo();
run.FileName = filePath+fileName;
System.Diagnostics.Process.Start(run);
}
catch
{
MessageBox.Show("파일을 실행할 수 없습니다.");
}
} // button8_Click
오늘 작성한 소스일부 中...
728x90
반응형
'C#' 카테고리의 다른 글
C# Windows Forms | 윈폼 | CheckedListBox에서 아이템 이름 한 번 클릭 시 체크박스 체크하기 (0) | 2021.03.08 |
---|---|
C# Winform ComponentOne C1NumericEdit 천 단위 콤마(Comma) 표시하기 (1) | 2021.02.23 |
[C# Winform] fpSpread에 세팅된 콤보박스의 옵션 수 구하기 (0) | 2021.02.22 |
Winform 모든 컨트롤 조회하기 (0) | 2020.12.02 |
Winform에서 fpSpread에서 마우스 우클릭 감지 (0) | 2020.12.02 |