MFC如何获取Excel2007驱动程序,以防止65536行的限制
使用MFC将数据插入excel 2003,我发现限制为65536行 我不想创建另一张表来保存数据,所以我想使用excel 2007 哪个扩展名是.xlsx 我使用以下代码获取驱动程序MFC如何获取Excel2007驱动程序,以防止65536行的限制,excel,mfc,odbc,excel-2007,Excel,Mfc,Odbc,Excel 2007,使用MFC将数据插入excel 2003,我发现限制为65536行 我不想创建另一张表来保存数据,所以我想使用excel 2007 哪个扩展名是.xlsx 我使用以下代码获取驱动程序 ((CDR12Dlg*)AfxGetMainWnd())->sExcelDriver = _T("MICROSOFT EXCEL DRIVER (*.xls)"); ((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strExcelFilePath.Format
((CDR12Dlg*)AfxGetMainWnd())->sExcelDriver = _T("MICROSOFT EXCEL DRIVER (*.xls)");
((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strExcelFilePath.Format(((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strBaseFolder);
((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strExcelFilePath.AppendFormat(_T("%s_%s_%.0f℃_%d%s"),
((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strDevID,
((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strDevModel,
theApp.fTab1TestAvgTemp,
loop,
_T(".xls"));
TRY
{
// Build the creation string for access without DSN
strSql.Format(_T("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=/%s/;DBQ=%s"),
((CDR12Dlg*)AfxGetMainWnd())->sExcelDriver,
((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strExcelFilePath,
((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strExcelFilePath);
// Create the database (i.e. Excel sheet)
if( ((CDR12Dlg*)AfxGetMainWnd())->database.OpenEx(strSql,CDatabase::noOdbcDialog) )
{
((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strExcelTableName.Empty();
((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strExcelTableName.Format(_T("%s_%s"),
((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strDevID,
((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strDevModel);
CString strSqlField;
strSqlField.Format(_T("RecvTime TEXT,"));
for(int loop=1; loop<=theApp.nTab1TestPointNumber; loop++)
{
if(loop == theApp.nTab1TestPointNumber)
{
strSqlField.AppendFormat(_T("TestPoint%d NUMBER"), loop);
} else {
strSqlField.AppendFormat(_T("TestPoint%d NUMBER,"), loop);
}
}
// Create table structure
strSql.Format(_T("CREATE TABLE \"%s\" (%s)"),
((CDR12Dlg*)AfxGetMainWnd())->sTab1CurveFile.strExcelTableName,
strSqlField);
((CDR12Dlg*)AfxGetMainWnd())->database.ExecuteSQL(strSql);
}
// Close database
((CDR12Dlg*)AfxGetMainWnd())->database.Close();
}
CATCH_ALL(e)
{
TRACE1("Driver not installed: %s\n",((CDR12Dlg*)AfxGetMainWnd())->sExcelDriver);
}
END_CATCH_ALL;
替换
sExcelDriver = _T("MICROSOFT EXCEL DRIVER (*.xlsx)");
或
并另存为.xlsx文件
但结果将显示“未安装驱动程序”
我尝试安装AccessDatabaseEngine,它链接excel 2007
如何将代码更改为acces excel 2007文件。好的,我找到了解决方案 在windows7控制面板->系统菜单工具->数据源(ODBC)中 选择选项卡的“用户数据源名称” 在代码中查找Excel文件字段和sExcelDriver字符串 必须匹配驱动程序字符串,包括空格和长度 如下代码
sExcelDriver = _T("MICROSOFT EXCEL DRIVER (*.xls, *.xlsx, *.xlsm, *.xlsb)");
sExcelDriver = _T("MICROSOFT EXCEL DRIVER (*.xls, xlsx)");
sExcelDriver = _T("MICROSOFT EXCEL DRIVER (*.xls, *.xlsx, *.xlsm, *.xlsb)");