C#에서 ListView로 쌓아둔 내용(?)을 ... Excel로 저장하기 위한 소스 코드입니다.
Excel로 저장하기 위해서 처리한 Method만 올려 놓았습니다.
(실행 파일 및 스크린 샷은 첨부 하지 않았습니다.)
private void btnSaveExcel_Click(object sender, EventArgs e)
{
if (btnOpen.Visible == false)
{
MessageBox.Show("저장전 Port를 Close하세요!");
}
else
{
//엑셀 저장하기
saveFileDialog1.CreatePrompt = true;
saveFileDialog1.OverwritePrompt = true;
saveFileDialog1.DefaultExt = "*.xls";
saveFileDialog1.Filter = "Excel Files (*.xls)|*.xls";
saveFileDialog1.InitialDirectory = "C:\\";
DialogResult result = saveFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
try
{
object missingType = Type.Missing;
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelBook = excelApp.Workbooks.Add(missingType);
Microsoft.Office.Interop.Excel.Worksheet excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)excelBook.Worksheets.Add(missingType, missingType, missingType, missingType);
excelApp.Visible = false;
for (int i = 0; i < lstView.Items.Count; i++)
{
for (int j = 0; j < lstView.Columns.Count; j++)
{
if (i == 0)
{
excelWorksheet.Cells[1, j + 1] = this.lstView.Columns[j].Text;
}
excelWorksheet.Cells[i + 2, j + 1] = this.lstView.Items[i].SubItems[j].Text;
}
}
excelBook.SaveAs(@saveFileDialog1.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, missingType, missingType, missingType, missingType, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, missingType, missingType, missingType, missingType, missingType);
excelApp.Visible = true;
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
}
catch
{
MessageBox.Show("Excel 파일 저장중 에러가 발생했습니다.");
}
}
}
}

