| 发表于:2007-09-28 13:55:545楼 得分:0 |
jfvoid cr2xdlg::exportexcel(_recordsetptr &prs) { long lcount = m_prs-> getrecordcount(); if (lcount > 65536) { afxmessagebox( "excel一次最多导出65536行,您查询的记录已经到了 "+m_strcount+ "行! "); return; } using namespace xls; colevariant vopt(disp_e_paramnotfound, vt_error); _application oapp; oapp.createdispatch( "excel.application "); if (!oapp) { afxmessagebox( "本机没有安装EXECl! ", mb_iconinformation); return; } oapp.setvisible(true); workbooks obooks = oapp.getworkbooks(); _workbook obook = obooks.add(vopt); worksheets osheets = obook.getworksheets(); _worksheet osheet = osheets.getitem(colevariant((short)1)); range orange; //transfer the data in the recordset to the worksheet orange = osheet.getrange(colevariant( "a2 "), vopt); orange.copyfromrecordset((lpunknown) prs, vopt, vopt); //add the field names to row 1 long ncol = prs-> fields-> count; for (long i = 0; i <= ncol-1; i++) { orange = osheet.getrange(colevariant( "a1 "), vopt); orange = orange.getoffset(vopt, colevariant(i)); orange.setvalue2(_variant_t(prs-> fields-> getitem(colevariant(i))-> name)); } //format the worksheet orange = osheet.getrange(colevariant( "a1 "), vopt); orange = orange.getresize(colevariant((short)1), colevariant(ncol)); font ofont = orange.getfont(); ofont.setbold(colevariant((short)true)); orange = orange.getentirecolumn(); // orange.autofit(); range resizedrange; interior interior; borders borders; resizedrange = osheet.getrange(colevariant( "a1 "), vopt); resizedrange = resizedrange.getresize(_variant_t(short(1)), _variant_t(ncol)); interior = resizedrange.getinterior(); interior.setcolorindex(_variant_t((short)35)); borders = resizedrange.getborders(); borders.setweight(_variant_t((short)2)); // xlthin = 2 //make excel visible and give the user control oapp.setvisible(true); oapp.setusercontrol(true); } | | |
|