작성 포맷 :
TEXT 모드, 자동 줄바꿈 사용
안녕하세요..
닷넷으로 처음으로 프로그램을 만들어보고 있는데요.
버튼을 누르면 DB 결과값을 엑셀파일로 만드는 부분인데요.
만드는 시간이 한 10초정도 걸리더라구요..
그 사이에 로딩이미지를 넣고싶은데요..
어떻게 해야하는지 아시는 분은 답글을 좀 부탁드릴께요...
private async Task<string> SaveExcelAsync()
{
string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string path = Path.Combine(desktopPath, "Excel.xlsx");
excelApp = new Excel.Application();
workBook = excelApp.Workbooks.Add();
Excel._Worksheet workSheet = (Excel._Worksheet)excelApp.ActiveSheet;
workSheet.Cells[1, 1] = "unitnumb";
.... (해당 칼럼헤더 채움)
workSheet.Cells[1, 30] = "detail_gubun";
await Task.Run(
() => {
// 쿼리문 실행
Database DB = new Database();
DataTable ds = DB.ExecuteQueryDataTable(query_excel);
for (var i = 0; i < ds.Rows.Count; i++)
{
for (var j = 0; j < ds.Columns.Count; j++)
{
workSheet.Cells[i + 2, j + 1] = ds.Rows[i][j];
}
}
}
); // e. await
return "success";
}
private void ShowLoading()
{
loading_img.Visible = true;
}
protected async void btnExcelSave_Click(object sender, EventArgs e)
{
// 이미지 보여주기
ShowLoading();
var data = await SaveExcelAsync();
....
}
인터넷에서 검색해서 소스들을 조합해서 해보긴했는데
엑셀파일을 다 만들고나서 로딩 이미지가 보이더라구요..
어떻게 로딩이미지 먼저보여주고 파일 다 만들면 사라지게 할지.. 방법을 잘 모르겠네요...
아래는 로딩 이미지입니다..
<div class="wrap_center">
<asp:Image ID="loading_img" runat="server" ImageUrl="~/img/ajax-loader.gif" Visible="false" />
</div>
|