导出数据到excel 本帖最后由 zhoujiajie0521 于 2012-04-13 17:50:06 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 pThisRange=pThisWorksheet->GetRange(_variant_t("AA1"),_variant_t("AA1"));pThisRange->PutValue(_variant_t((long)Excel::xlRangeValueDefault),_variant_t("test"));这样使用没问题s1.Format("A%c%d",'A'+i,nn); EXCEL行列坐标与字符串的相互转换 怎么我的没PutValue这个函数呢?要加哪个类或者文件 s1.Format("A%c%d",'A',nn);objRange1=objSheet.GetRange(_variant_t(s1),_variant_t(s1));s=sa.GetAt(26);objRange1.SetFormulaR1C1(_variant_t(s));/////////////////////////现在用的是上面几行代码,还是不行。 _Application appExcel; Workbooks workBooks; _Workbook workBook; _Worksheet workSheet; Range rangeWork, rangeDel, rangSunday; COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); if(!appExcel.CreateDispatch(_T("Excel.Application")) ) { this->MessageBox(_T("无法启动Excel,可能并未安装!")); return; } appExcel.SetVisible(TRUE); appExcel.SetUserControl(TRUE); workBooks = appExcel.GetWorkbooks(); workBook = workBooks.Add(test.xls); workSheet = workBook.GetActiveSheet(); rangeWork = workSheet.GetCells();通过这种方式获取到rangeWork然后可以通过SetItem设置单元格内容和操作数组类似例如rangeWork.SetItem(COleVariant(4L), COleVariant(28L), COleVariant(_T("test")); 异常:vcexcel.exe 中的 0x7c812afb 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012d8a8 处的 COleDispatchException。 第一行插入字段名的时候就出错了///////////////////////////for(int n=0;n<nFieldcnt;n++,cc++) { /*将字段名作为标题导出到execl的第一行*/ rs.GetODBCFieldInfo(n, fieldinfo); objRange1.SetHorizontalAlignment(varCenter); objRange1.SetVerticalAlignment(varCenter); oFont=objRange1.GetFont(); oFont.SetBold(_variant_t((long)1));//设为粗体 objRange1.SetColumnWidth(_variant_t("20")); objRange1.SetItem(_variant_t((long)1),_variant_t((long)n),_variant_t(fieldinfo.m_strName)); objBorders=objRange1.GetBorders(); objBorders.SetLineStyle(_variant_t((long)1)); } 谢谢哈,方法可行,现在数据能导出来了,不过还漏了第一行的字段名objRange1.SetItem(_variant_t(long(1)),_variant_t(long(cc)),_variant_t(fieldinfo.m_strName));这一句没能把字段名显示出来 objRange1.SetItem(_variant_t(long(1)),_variant_t(long(cc)),_variant_t(fieldinfo.m_strName));cc是变量?方法是一样的你再调试看看吧 而且调用excel表格出来后还会弹出错误消息框:内部应用程序错误! MFC如何编写一个对数据库的备份和恢复功能 开发C/S版电子交易系统的用C++好么? 在MFC环境下,为下拉菜单“新建数据文件”添加两个命令 高分 求救 关于CRichEditCtrl 我定义一个链表,按书做的,但有错,各位帮帮忙 那位在珠海或去过的仁兄告诉我一下怎么从广州火车站总站到珠海呀? 如何捕捉另一程序崩溃(或内存错误,Runtime C++错误)的消息??? 小学奥英题征求答案 VC中有无监视内存的工具? 求<<windows95 程序设计>>软盘 VC 线程通信:线程读取列表数据出错! 请教高手 如何改变菜单栏位置
pThisRange->PutValue(_variant_t((long)Excel::xlRangeValueDefault),_variant_t("test"));这样使用没问题
s1.Format("A%c%d",'A'+i,nn);
objRange1=objSheet.GetRange(_variant_t(s1),_variant_t(s1));
s=sa.GetAt(26);
objRange1.SetFormulaR1C1(_variant_t(s));
/////////////////////////
现在用的是上面几行代码,还是不行。
_Application appExcel;
Workbooks workBooks;
_Workbook workBook;
_Worksheet workSheet;
Range rangeWork, rangeDel, rangSunday;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); if(!appExcel.CreateDispatch(_T("Excel.Application")) )
{
this->MessageBox(_T("无法启动Excel,可能并未安装!"));
return;
}
appExcel.SetVisible(TRUE);
appExcel.SetUserControl(TRUE); workBooks = appExcel.GetWorkbooks();
workBook = workBooks.Add(test.xls); workSheet = workBook.GetActiveSheet();
rangeWork = workSheet.GetCells();通过这种方式获取到rangeWork
然后可以通过SetItem设置单元格内容
和操作数组类似
例如
rangeWork.SetItem(COleVariant(4L), COleVariant(28L), COleVariant(_T("test"));
vcexcel.exe 中的 0x7c812afb 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012d8a8 处的 COleDispatchException。
///////////////////////////
for(int n=0;n<nFieldcnt;n++,cc++)
{
/*将字段名作为标题导出到execl的第一行*/
rs.GetODBCFieldInfo(n, fieldinfo);
objRange1.SetHorizontalAlignment(varCenter);
objRange1.SetVerticalAlignment(varCenter);
oFont=objRange1.GetFont();
oFont.SetBold(_variant_t((long)1));//设为粗体
objRange1.SetColumnWidth(_variant_t("20"));
objRange1.SetItem(_variant_t((long)1),_variant_t((long)n),_variant_t(fieldinfo.m_strName));
objBorders=objRange1.GetBorders();
objBorders.SetLineStyle(_variant_t((long)1));
}
objRange1.SetItem(_variant_t(long(1)),_variant_t(long(cc)),_variant_t(fieldinfo.m_strName));这一句没能把字段名显示出来
cc是变量?
方法是一样的
你再调试看看吧