void Cwhu_FaxSettingDlg::Lin_ImportAutoForArr(CString m_FilePath,CStringArray &m_AutoForward) { int Number = 0; //m_DutyArr数组必须足够大// //导入 CApplication app; CWorkbook book; CWorkbooks books; CWorksheet sheet; CWorksheets sheets; CRange range; LPDISPATCH lpDisp; //定义变量// COleVariant covOptional((long) DISP_E_PARAMNOTFOUND,VT_ERROR); if (!app.CreateDispatch(_T("Excel.Application"))) { this->MessageBox(_T("无法创建Excel应用")); } books = app.get_Workbooks(); //打开Excel,其中m_FilePath为Excel表的路径名// lpDisp = books.Open(m_FilePath,covOptional ,covOptional,covOptional,covOptional ,covOptional,covOptional,covOptional ,covOptional,covOptional,covOptional ,covOptional,covOptional,covOptional ,covOptional); book.AttachDispatch(lpDisp); sheets = book.get_Worksheets(); sheet = sheets.get_Item(COleVariant((short)1)); CStringArray m_ContentArr; for (int ItemNum = 2;ItemNum<40;ItemNum++) { for (int ColumNum=1;ColumNum<11;ColumNum++) { CString m_pos = Lin_GetEnglishCharacter(ColumNum); CString m_Itempos; m_Itempos.Format(_T("%d"),ItemNum); CString m_str = m_pos+m_Itempos; range = sheet.get_Range(COleVariant(m_str),COleVariant(m_str)); //获得单元格的内容 COleVariant rValue; rValue = COleVariant(range.get_Value2()); //转换成宽字符// rValue.ChangeType(VT_BSTR); //转换格式,并输出// CString m_content = CString(rValue.bstrVal); if (m_content!=_T("")) { m_AutoForward.Add(m_content); } } } book.put_Saved(TRUE); app.Quit(); }
void ole_close_excel(const std::wstring &xlsx, CApplication &excel_application, CWorkbooks &books, CWorkbook &book, CWorksheets &sheets) { COleVariant covTrue((short)TRUE), covFalse((short)FALSE); COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); book.Close(COleVariant(short(FALSE)),COleVariant(xlsx.c_str()), covOptional); books.Close(); // 释放资源 sheets.ReleaseDispatch(); book.ReleaseDispatch(); books.ReleaseDispatch(); excel_application.Quit(); excel_application.ReleaseDispatch(); }
bool CPalletID::PrintBarCode(int BoadNumber,CString &csTotal, bool isPrint) { CString temp; GetMyCurrentTime(temp,false); CString CS_SERIAL; CS_SERIAL.Format(L"%05d",BoadNumber); csTotal = temp + CS_SERIAL; if (isPrint) { //AfxMessageBox(L"创建组件"); const IID clsid = {0x3624b9c0, 0x9e5d,0x11d3, {0xa8,0x96, 0x00,0xc0,0x4f, 0x32, 0x4e, 0x22}}; CApplication app; if (FALSE == app.CreateDispatch(clsid)) { AfxMessageBox(_T("创建组件对象失败")); return false; } //CString szDir; //szDir.Format(L"\\\\172.20.0.8\\1.公司会议资料\\博杰生产管理软件\\条码模板\\卡板条形码.lab"); //szDir.Format(L"卡板条形码.lab"); TCHAR szDir[MAX_PATH] = {0}; GetModuleFileName(NULL, szDir, MAX_PATH); TCHAR* pEnd = _tcsrchr(szDir, _T('\\')); if(pEnd) *pEnd = 0; _tcscat_s(szDir, _T("\\卡板条形码.lab")); //Sleep(1000); _bstr_t bszDir = (szDir); if (app.GetDocuments()->Open(bszDir, true) == FALSE) { AfxMessageBox(_T("打开模板失败")); return false; } IDocumentStr *pdoc = (IDocumentStr *)app.GetActiveDocument(); //AfxMessageBox(csTotal); //Sleep(1000); _bstr_t bSerial =(csTotal); pdoc->GetVariables()->GetFormVariables()->Item(_T("Serial"))->Value = bSerial; pdoc->PrintDocument(1); app.Quit(); //AfxMessageBox(L"Fnish"); } return true; }
void COpenExcelDlg::Lin_InportExcelToList(CString m_FilePath,CListCtrl &m_List) { //先删除列表内容// m_List.DeleteAllItems(); while(m_List.GetHeaderCtrl()->GetItemCount()>0) { m_List.DeleteColumn(0); } //导入 CApplication app; CWorkbook book; CWorkbooks books; CWorksheet sheet; CWorksheets sheets; CRange range; LPDISPATCH lpDisp; //定义变量// COleVariant covOptional((long) DISP_E_PARAMNOTFOUND,VT_ERROR); if (!app.CreateDispatch(_T("Excel.Application"))) { this->MessageBox(_T("无法创建Excel应用")); return; } books = app.get_Workbooks(); //打开Excel,其中m_FilePath为Excel表的路径名// lpDisp = books.Open(m_FilePath,covOptional ,covOptional,covOptional,covOptional ,covOptional,covOptional,covOptional ,covOptional,covOptional,covOptional ,covOptional,covOptional,covOptional ,covOptional); book.AttachDispatch(lpDisp); sheets = book.get_Worksheets(); sheet = sheets.get_Item(COleVariant((short)1)); CStringArray m_HeadName; for (int i=1;i<26;i++) { CString m_pos = Lin_GetEnglishCharacter(i); m_pos = m_pos + _T("1"); range = sheet.get_Range(COleVariant(m_pos),COleVariant(m_pos)); //获得单元格的内容 COleVariant rValue; rValue = COleVariant(range.get_Value2()); //转换成宽字符// rValue.ChangeType(VT_BSTR); //转换格式,并输出// CString m_content = CString(rValue.bstrVal); if (m_content!=_T("")) { m_HeadName.Add(m_content); } } Lin_InitList(m_List,m_HeadName); CStringArray m_ContentArr; for (int ItemNum = 0;ItemNum<10000;ItemNum++) { for (int j=1;j<m_List.GetHeaderCtrl()->GetItemCount();j++) { CString m_pos = Lin_GetEnglishCharacter(j); CString m_Itempos; m_Itempos.Format(_T("%d"),ItemNum+2); CString m_str = m_pos+m_Itempos; range = sheet.get_Range(COleVariant(m_str),COleVariant(m_str)); //获得单元格的内容 COleVariant rValue; rValue = COleVariant(range.get_Value2()); //转换成宽字符// rValue.ChangeType(VT_BSTR); //转换格式,并输出// CString m_content = CString(rValue.bstrVal); m_ContentArr.Add(m_content); } if (m_ContentArr.GetAt(0)!=_T("")) { Lin_InsertList(m_List,m_ContentArr); m_ContentArr.RemoveAll(); } else{ break; } } book.put_Saved(TRUE); app.Quit(); }
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(); }
void Cwhu_FaxSettingDlg::Lin_ExportForArrToExcel(CStringArray &m_AutoForward,CString m_FilePath) { CApplication app; CWorkbooks books; CWorkbook book; CWorksheets sheets; CWorksheet sheet; CRange range; CRange cols; CString str1, str2; int m_ArrPos = 0; int m_ArrCount = m_AutoForward.GetSize(); COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); if( !app.CreateDispatch(_T("Excel.Application"))) { MessageBox(_T("无法创建Excel应用!")); return; } books=app.get_Workbooks(); book=books.Add(covOptional); sheets=book.get_Sheets(); sheet=sheets.get_Item(COleVariant((short)1)); //写入表头// str2 = _T("A1"); CString str = _T("源号码"); range=sheet.get_Range(COleVariant(str2),COleVariant(str2)); range.put_Value2(COleVariant(str)); str2 = _T("B1"); str = _T("转发号码个数"); range=sheet.get_Range(COleVariant(str2),COleVariant(str2)); range.put_Value2(COleVariant(str)); for (int j=3;j<11;j++) { str2 = Lin_GetEnglishCharacter(j); str2 = str2 +_T("1"); str= _T("转发号码"); range=sheet.get_Range(COleVariant(str2),COleVariant(str2)); range.put_Value2(COleVariant(str)); } CStringArray m_LineStart; for (int i=0;i<m_ArrCount;i++) { CString m_str= m_AutoForward.GetAt(i); int CharCount = m_str.GetLength(); if (CharCount<4) //如果是号码个数// { m_str.Format(_T("%d"),i-1); m_LineStart.Add(m_str); } } int ItemNum = 2; int ColumNum = 1; for (int i=0;i<m_LineStart.GetSize();i++) { int Pos = _ttoi(m_LineStart.GetAt(i)); CString m_str = m_AutoForward.GetAt(Pos+1); int Number = _ttoi(m_str); for (int j=0;j<Number+2;j++) { str2 = Lin_GetEnglishCharacter(ColumNum); str1.Format(_T("%d"),ItemNum); str2 = str2 +str1; CString content = _T("'")+m_AutoForward.GetAt(Pos+j); range=sheet.get_Range(COleVariant(str2),COleVariant(str2)); range.put_Value2(COleVariant(content)); ColumNum++; if (ColumNum>10) { ColumNum = 3; ItemNum++; } } ItemNum++; ColumNum = 1; } cols=range.get_EntireColumn(); cols.AutoFit(); //app.put_Visible(TRUE); //app.put_UserControl(TRUE); book.SaveAs(COleVariant(m_FilePath),covOptional,covOptional,covOptional,covOptional,covOptional,0,covOptional,covOptional,covOptional,covOptional,covOptional); app.Quit(); }