求助帖,急!VC中把DataGrid中的数据导出到EXCLE中是出错
阿勒。 2015-12-07 01:29:55 错误如下 求高人指教!
error C2678: binary '==' : no operator defined which takes a left-hand operand of type 'class CDataGrid' (or there is no acceptable conversion)
下面是代码 红色部分是出错的地方 if(m_datagrid=="个人信息表") 这里的m_datagrid(这是个DataGrid定义的变量)对吗,
还是得换成是给ADO DATA定义的变量m_adodc,==后面的应该是写我需要连接的SQL数据库中的表?
_Application app; //程序对象
Workbooks books; //工作簿集合
_Workbook book; //工作簿
Worksheets sheets; //工作表集合
_Worksheet sheet; //工作表
Range range; //单元格范围
//Font font; //字体
Range cols;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if( !app.CreateDispatch("Excel.Application") )
{
this->MessageBox("无法创建Excel应用!");
return;}
books=app.GetWorkbooks();
book=books.Add(covOptional); //新建工作簿
sheets=book.GetSheets();
sheet=sheets.GetItem(COleVariant((short)1)); //以下是我的具体表
if(m_datagrid=="个人信息表")
{
range=sheet.GetRange(COleVariant("A1"),COleVariant("a1")); //字段名设置
range.SetValue2(COleVariant("Tid"));cols=range.GetEntireColumn();cols.SetColumnWidth(_variant_t((long)8)); //设置Excel列宽
range=sheet.GetRange(COleVariant("b1"),COleVariant("b1"));
range.SetValue2(COleVariant("Tname"));cols=range.GetEntireColumn();cols.AutoFit();
range=sheet.GetRange(COleVariant("c1"),COleVariant("c1"));
range.SetValue2(COleVariant("Sex"));cols=range.GetEntireColumn();cols.SetColumnWidth(_variant_t((long)12));
range=sheet.GetRange(COleVariant("d1"),COleVariant("d1"));
range.SetValue2(COleVariant("DOB"));cols=range.GetEntireColumn();cols.SetColumnWidth(_variant_t((long)12));
range=sheet.GetRange(COleVariant("e1"),COleVariant("e1"));
range.SetValue2(COleVariant("Xueli"));cols=range.GetEntireColumn();cols.AutoFit();
range=sheet.GetRange(COleVariant("f1"),COleVariant("f1"));
range.SetValue2(COleVariant("Lianxi"));cols=range.GetEntireColumn();cols.AutoFit();
range=sheet.GetRange(COleVariant("g1"),COleVariant("g1"));
range.SetValue2(COleVariant("Zhiwuleibieid"));cols=range.GetEntireColumn();cols.AutoFit();
range=sheet.GetRange(COleVariant("h1"),COleVariant("h1"));
range.SetValue2(COleVariant("Zhichengid"));cols=range.GetEntireColumn();cols.AutoFit();
range=sheet.GetRange(COleVariant("i1"),COleVariant("i1"));
range.SetValue2(COleVariant("Bumenid"));cols=range.GetEntireColumn();cols.AutoFit();//Range复位
}
int ss,nn; //双循环将m_datagrid中的数据全部导出到Excel
double dtotal;
dtotal=0;
CString cc;
nn=m_adodc.GetRecordset().GetRecordCount();
CColumns cls;
cls=m_datagrid.GetColumns();
ss=cls.GetCount();
for(int i=0;i<nn;i++)
{
m_datagrid.SetRow(i);
for(int j=0;j<ss;j++)
{
m_datagrid.SetCol(j);
cc=m_datagrid.GetText();
range.SetItem(_variant_t((long)(i+2)),_variant_t((long)(j+1)),_variant_t(cc));
}
}
app.SetVisible(TRUE); //设置Excel表可见
app.SetUserControl(TRUE); //设置Excel表可被操作