Posted
Filed under .NET/C#

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 파일 저장중 에러가 발생했습니다.");
                    }
                }
            }
        }
2010/07/11 00:01 2010/07/11 00:01