void IllusionExcelFile::SetCellBold(long irow, long icolumn, bool bold){ COleVariant new_bold((long)(bold?1:0)); excel_current_range_.ReleaseDispatch(); excel_current_range_ = excel_work_sheet_.get_Range(COleVariant(RCString(irow,icolumn)),covOptional); CFont0 font = excel_current_range_.get_Font(); font.put_Bold(new_bold); }
void CSendRedPacketRecord::ExportSendRedPacketToexel() { // TODO: 在此添加控件通知处理程序代码 string conditon; conditon= "where 1=1 order by send_time desc"; uistruct::REDPACKETSENDLIST SendRedPacketList; int nItem = theApp.m_SqliteDeal.GetRedPacketSendRecordList(conditon ,&SendRedPacketList ) ; if (SendRedPacketList.size() == 0) { UiFun::MessageBoxEx(UiFun::UI_LoadString("TRAD_MODULE" , "TRAD_NOT_RECORD_OUT" ,theApp.gsLanguage) , UiFun::UI_LoadString("COMM_MODULE" , "COMM_TIP" ,theApp.gsLanguage) ,MFB_OK|MFB_TIP ); return; } CFileDialog dlg(FALSE,NULL,UiFun::UI_LoadString("MENU" , "MENU_SENDRED" ,theApp.gsLanguage),OFN_HIDEREADONLY|OFN_FILEMUSTEXIST ,UiFun::UI_LoadString("COMM_MODULE" , "COMM_FILE" ,theApp.gsLanguage)+" (*.xls)|*.xls||"); if (IDOK != dlg.DoModal()) { return; } CString strFile = dlg.GetPathName(); if (!((CDacrsUIDlg*)(theApp.m_pMainWnd))->GetFileName(strFile,_T(".xls"))) { return; } struct LISTCol { string name ; UINT size ; } listheadr[7] = { {UiFun::UI_LoadString("P2P_MODULE" , "MORTTARD_SENDGIFT" ,theApp.gsLanguage) , 70}, {UiFun::UI_LoadString("MORTTARD_MODULE" , "P2P_PROMOTER" ,theApp.gsLanguage), 30}, {UiFun::UI_LoadString("MORTTARD_MODULE" , "MORTTARD_TYPE" ,theApp.gsLanguage) , 10}, {UiFun::UI_LoadString("MORTTARD_MODULE" , "MORTTARD_GRABTIME" ,theApp.gsLanguage) , 20}, {UiFun::UI_LoadString("MORTTARD_MODULE" , "MORTTARD_TOTALMONEY" ,theApp.gsLanguage) ,30}, {UiFun::UI_LoadString("MORTTARD_MODULE" , "MORTTARD_COUNT" ,theApp.gsLanguage) ,10}, {UiFun::UI_LoadString("RECEIVE_MODULE" , "RECEIVE_ACTIVATION_STATE" ,theApp.gsLanguage) , 10} }; COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); CApplication app; CWorkbooks books; CWorkbook book; CWorksheets sheets; CWorksheet sheet; CRange range; CFont0 font; if (!app.CreateDispatch(_T("Excel.Application"))) { UiFun::MessageBoxEx(UiFun::UI_LoadString("TRAD_MODULE" , "TRAD_NOT_OFFICE" ,theApp.gsLanguage) , UiFun::UI_LoadString("COMM_MODULE" , "COMM_TIP" ,theApp.gsLanguage),MFB_OK|MFB_TIP ); return; } //Get a new workbook. books = app.get_Workbooks(); book = books.Add(covOptional); sheets = book.get_Worksheets(); sheet = sheets.get_Item(COleVariant((short)1)); ////////////////////////////////////CListCtrl控件report风格////////////////////////////////////////////////////////// //CHeaderCtrl *pmyHeaderCtrl; //pmyHeaderCtrl = m_listCtrl.GetHeaderCtrl();//此句取得CListCtrl控件的列表頭 int iRow,iCol; int m_cols = 7; int m_rows = SendRedPacketList.size(); HDITEM hdi; TCHAR lpBuffer[256]; bool fFound = false; hdi.mask = HDI_TEXT; hdi.pszText = lpBuffer; hdi.cchTextMax = 256; CString colname; CString strTemp; for(iCol=0; iCol <m_cols; iCol++)//将列表的标题头写入EXCEL { UiFun::GetCellName(1 ,iCol + 1, colname); range = sheet.get_Range(COleVariant(colname),COleVariant(colname)); //pmyHeaderCtrl-> GetItem(iCol, &hdi); range.put_Value2(COleVariant(listheadr[iCol].name.c_str())); int nWidth = listheadr[iCol].size; //m_listCtrl.GetColumnWidth(iCol)/6; //得到第iCol+1列 range.AttachDispatch(range.get_Item(_variant_t((long)(iCol+1)),vtMissing).pdispVal,true); //设置列宽 range.put_ColumnWidth(_variant_t((long)nWidth)); } range = sheet.get_Range(COleVariant( _T("A1 ")), COleVariant(colname)); range.put_RowHeight(_variant_t((long)50));//设置行的高度 font = range.get_Font(); font.put_Bold(covTrue); range.put_VerticalAlignment(COleVariant((short)-4108));//xlVAlignCenter = -4108 COleSafeArray saRet; DWORD numElements[]={m_rows,m_cols}; //5x2 element array saRet.Create(VT_BSTR, 2, numElements); range = sheet.get_Range(COleVariant( _T("A2 ")),covOptional); range = range.get_Resize(COleVariant((short)m_rows),COleVariant((short)m_cols)); long index[2]; range = sheet.get_Range(COleVariant( _T("A2 ")),covOptional); range = range.get_Resize(COleVariant((short)m_rows),COleVariant((short)m_cols)); int iLine = 0; iRow = 1; iCol = 1; vector<uistruct::REDPACKETSEND_t>::const_iterator pitem = SendRedPacketList.begin(); for(;pitem != SendRedPacketList.end();pitem++,iRow++) { map<int,string> item; GetExportCol(item,*pitem); for ( iCol = 1; iCol <= m_cols; iCol++) { index[0]=iRow-1; index[1]=iCol-1; string strTemp = item[iCol-1]; CString szTemp = strTemp.c_str(); BSTR bstr = szTemp.AllocSysString(); saRet.PutElement(index,bstr); SysFreeString(bstr); } } range.put_Value2(COleVariant(saRet)); saRet.Detach(); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// book.SaveCopyAs(COleVariant(strFile)); // cellinterior.ReleaseDispatch(); book.put_Saved(true); book.ReleaseDispatch(); books.ReleaseDispatch(); app.Quit(); app.ReleaseDispatch(); }