Notice
Recent Posts
Recent Comments
Link
JY Tech
윈폼으로 설문조사 결과산출 프로그램 만들기(6) 본문
이번 시간에는 dataGridView에 입력한 내용들을 엑셀로 저장하는 기능을 구현할 것이다.
윈폼에서 엑셀을 연동하기 위해서는 패키지를 설치해야 한다.
화면 우측의 [참조]를 우클릭하고 [NuGet 패키지 관리] 를 클릭한다
찾아보기 에서 excel을 검색하고
이걸 설치하면 된다.
ProMode의 엑셀로저장 버튼을 클릭 해 이벤트를 만들어주고 다음과 같이 코드가 구성되도록 한다
private void button2_Click(object sender, EventArgs e)
{
ExportToExcel(); //클릭 이벤트에 있어야 하는 코드
}
이제 ExportToExcel()을 만들어준면 된다.
private void ExportToExcel()
{
bool IsExport = false;
// Creating a Excel object.
Microsoft.Office.Interop.Excel._Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = excel.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
try
{
worksheet = workbook.ActiveSheet;
int cellRowIndex = 1;
int cellColumnIndex = 1;
for (int col = 0; col < dataGridView1.Columns.Count; col++)
{
if (cellRowIndex == 1)
{
worksheet.Cells[cellRowIndex, cellColumnIndex] = dataGridView1.Columns[col].HeaderText;
}
cellColumnIndex++;
}
cellColumnIndex = 1;
cellRowIndex++;
for (int row = 0; row <= dataGridView1.Rows.Count - 1; row++)
{
for (int col = 0; col < dataGridView1.Columns.Count; col++)
{
worksheet.Cells[cellRowIndex, cellColumnIndex] = dataGridView1.Rows[row].Cells[col].Value.ToString();
cellColumnIndex++;
}
cellColumnIndex = 1;
cellRowIndex++;
}
SaveFileDialog saveFileDialog = GetExcelSave();
if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
workbook.SaveAs(saveFileDialog.FileName);
MessageBox.Show("데이터가 성공적으로 저장되었습니다");
IsExport = true;
}
//Export 성공 했으면 객체들 해제
if (IsExport)
{
workbook.Close();
excel.Quit();
workbook = null;
excel = null;
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private SaveFileDialog GetExcelSave()
{
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.CheckPathExists = true;
saveDialog.AddExtension = true;
saveDialog.ValidateNames = true;
saveDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
saveDialog.DefaultExt = ".xlsx";
saveDialog.Filter = "Microsoft Excel Workbook (*.xls)|*.xlsx";
saveDialog.FileName = "Data Analyze".ToString(); //엑셀로 저장할 때 기본 파일이름
return saveDialog;
}
위의 코드는 dataGridView의 내용을 엑셀로 내보내고 저장하는 코드다.
사실 다른 코드와 달리 위 코드는 프로그램을 만들었을 당시에 구글링을 하다가 찾은 코드에 아주 살짝만 수정한건데 출처를 못찾았다..(출처를 찾으면 수정)
다음포스팅에서는 메인화면(Form1)의 ui를 수정하고 exe로 만들어 배포하는 방법을 알아볼 것이다.
'Programming > MiniProject' 카테고리의 다른 글
윈폼으로 설문조사 결과산출 프로그램 만들기(7) (1) | 2023.07.30 |
---|---|
윈폼으로 설문조사 결과산출 프로그램 만들기(5) (1) | 2023.05.13 |
윈폼으로 설문조사 결과산출 프로그램 만들기(4) (0) | 2023.04.22 |
윈폼으로 설문조사 결과산출 프로그램 만들기(3) (2) | 2023.04.15 |
윈폼으로 설문조사 결과산출 프로그램 만들기 지연.. (0) | 2023.04.08 |