MFC - 리스트컨트롤 항목을 엑셀로 저장하기

2014. 3. 3. 19:05Programing/MFC

첨부 된 파일을 추가하고 아래 코드만 삽입하시면 됩니다.

 

 

 

void CSIMDecoderView::OnFileSave()

{

 

            if (m_mylistcontrol.GetItemCount() <= 0)

            {

                        AfxMessageBox("There is no DATA.");

                        return;

            }

 

            CTime    timeNow     = CTime::GetCurrentTime();

            CString  strDateTime = timeNow.Format(_T("%Y-%m-%d_%H%M%S"));

            CString  strFileName = "";

            strFileName.Format("FIle_Name_%s", strDateTime);

 

            CFileDialog fdlg(FALSE, "xlsx", strFileName+".xlsx", 
                                   OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR, 
                                   "xlsx File (*.xlsx)|*.xlsx", NULL);

 

            if (fdlg.DoModal() != IDOK) 

                    return;

 

            // FALSE : Not Show Automation

            CXLEzAutomation xls(FALSE); 

 

  // Set Start Point

            int rowOffset = 3;

            int colOffset = 1;

 

            CHeaderCtrl* pHeaderCtrl = m_mylistcontrol.GetHeaderCtrl(); 

            int                colCount     = pHeaderCtrl->GetItemCount(); 

            int                rowCount    = m_mylistcontrol.GetItemCount();            

 

            CString strItemText;

            for (int rowIdx = 0; rowIdx < rowCount; rowIdx++)

            {

                        for (int colIdx = 0; colIdx < colCount; colIdx++)

                        {

                                    strItemText = m_mylistcontrol.GetItemText(rowIdx, colIdx);

                                     // Col Data

                                    xls.SetCellValue(colIdx + colOffset, rowIdx + rowOffset, strItemText);

                        }

            }

 

            xls.SaveFileAs(fdlg.GetPathName());

            xls.ReleaseExcel();

}