关于数据库查询结果导入到Excel中数据类型不匹配的问题,希望高手指点。
我用的数据库是sql server 7.0其中有各字段,phone用的事varchar类型,我用ado控件连接数据库,然后用adodataset来执行查询,然后把查询的结果保存到excel中但是不知道为什么总提示数据类型不对,程序代码如下:
Variant m_Excel,m_Workbooks,m_Workbook,m_Sheet,m_Value,cTablename,vValue;
int i,j=0;
cTablename = "booktest1";
try
{
m_Excel=CreateOleObject("Excel.Application"); //启动Excel
}
catch(...)
{
ShowMessage("无法启动Excel");
}
//使Excel启动后可见
m_Excel.OlePropertySet("Visible",true);
m_Workbooks = m_Excel.OlePropertyGet("Workbooks");
m_Workbooks.OleProcedure("Add");
m_Sheet = m_Excel.OlePropertyGet("ActiveSheet");
m_Sheet.OlePropertySet("Name",cTablename);
//add table fields name to excel 1 line
//m_Sheet.OleProcedure("Add");
m_Sheet.OlePropertyGet("Cells").OlePropertyGet("Item",6,1).OlePropertySet("Value","phone");
//数据库中的记录到excel
while(!ADODataSet4->Eof)
{
j++;
vValue = ADODataSet4->FieldValues["phone"];
//错误出在这里,要求 variant类型但是我怎么都转换不了,我用variant做强类型转换但不行
m_Sheet.OlePropertyGet("Cells").OlePropertyGet("Item",j+6,1).OlePropertySet("Value",vValue);
frmViewBilling->ADODataSet4->Next();
}
m_Sheet.OleFunction("SaveAs","d:\\booktest1.xls");
m_Excel.OleFunction("Quit");
希望高手可以给我解答这个问题。