本文最近在研究经济数据抽取,抽取的数据通过程序存储到Excel中,本人抽取了Excel数据表创建的实例,希望对有需求的人有帮助!
#include "stdafx.h"
#include <windows.h>
#include <afxdb.h>
#include "io.h"
int CreateExcel();
void WriteToExcel();
CDatabase m_database;
CString strXlsFile="E:\\TestProgram\\TestExcel\\test.xls";
int _tmain(int argc, _TCHAR* argv[])
{
CreateExcel();
WriteToExcel();
return 0;
}
int CreateExcel()
{
CString strMsg;
// POSITION pos ;
CString strZtdm, strNum;
CString strSql,sSql;
CString strDriver = _T("MICROSOFT EXCEL DRIVER (*.XLS)");
if(strDriver.IsEmpty())
{
strMsg = _T("没有检测到Excel驱动(Microsoft Excel Driver)!");
AfxMessageBox(strMsg, MB_ICONSTOP);
return -1;
}
if(_access(strXlsFile, 0) != -1)
{
DeleteFile(strXlsFile);
}
TRY
{
// 创建进行存取的字符串 strXlsFile
strSql.Format("DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s", strDriver, strXlsFile, strXlsFile);
// 创建数据库 (即Excel表格文件)
if( m_database.OpenEx(strSql,CDatabase::noOdbcDialog) )
{
sSql.Format(_T("CREATE TABLE %s (姓名 TEXT,学号 TEXT)"),strXlsFile);
m_database.ExecuteSQL(sSql);
}
m_database.Close();
}
CATCH_ALL(e)
{
TRACE1("Excel驱动没有安装: %s",strDriver);
}
END_CATCH_ALL;
}
void WriteToExcel()
{
CString strLog;
CString strSql,sSql;
CString sDsn;
CDatabase db;
CString strDriver = _T("MICROSOFT EXCEL DRIVER (*.XLS)");
if(strDriver.IsEmpty())
{
strLog = _T("没有检测到Excel驱动(Microsoft Excel Driver)!");
AfxMessageBox(strLog, MB_ICONSTOP);
return;
}
sDsn.Format(_T("ODBC;DRIVER={%s};DSN='';DBQ=%s"), strDriver, strXlsFile);
TRY
{
// 创建进行存取的字符串
strSql.Format("DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s", strDriver, strXlsFile, strXlsFile);
// 创建数据库 (即Excel表格文件)
if( m_database.OpenEx(strSql,CDatabase::noOdbcDialog) )
{
sSql.Format("INSERT INTO %s (姓名,学号) VALUES('张军','33')",strXlsFile);
m_database.ExecuteSQL(sSql);
}
m_database.Close();
}
CATCH_ALL(e)
{
TRACE1("Excel驱动没有安装: %s",strDriver);
}
END_CATCH_ALL;
}