我想用ODBC创建Excel表 下面代码有什么问题

licunkong 2003-10-06 09:21:54
void CRWExcelDlg::OnWriteexcel()
{
CDatabase database;
CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动
CString sExcelFile,sPath;
CString sSql;

//获取主程序所在路径,存在sPath中
GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
int nPos;
nPos=sPath.ReverseFind ('\\');
sPath=sPath.Left (nPos);

sExcelFile = sPath + "\\Demo.xls"; // 要建立的Excel文件

TRY
{
// 创建进行存取的字符串
sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, sExcelFile, sExcelFile);

// 创建数据库 (既Excel表格文件)
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
{
// 创建表结构(姓名、年龄)
sSql = "CREATE TABLE Exceldemo (Name TEXT,Age NUMBER,Age1 NUMBER)";
database.ExecuteSQL(sSql);

// 插入数值
sSql = "INSERT INTO Exceldemo (Name,Age,Age1) VALUES ('徐景周',26,24)";
database.ExecuteSQL(sSql);

sSql = "INSERT INTO Exceldemo (Name,Age,Age1) VALUES ('徐志慧',22,25)";
database.ExecuteSQL(sSql);

sSql = "INSERT INTO Exceldemo (Name,Age,Age1) VALUES ('郭徽',27,27)";
database.ExecuteSQL(sSql);
}

// 关闭数据库
database.Close();

AfxMessageBox("Excel文件写入成功!");
}
CATCH_ALL(e)
{
TRACE1("Excel驱动没有安装: %s",sDriver);
}
END_CATCH_ALL;

}


谢谢各位大侠帮帮忙
...全文
111 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
licunkong 2003-10-10
  • 打赏
  • 举报
回复
什么东西啊
你说的那些都没用
还有那个网站也打不开
乱来
Onega 2003-10-06
  • 打赏
  • 举报
回复
http://www.codeproject.com/database/excel_odbc_write.asp
Creating Excel Sheets using ODBC
By Alexander Mikula
What is Needed
In order to get the code below going you have to

have included
have an installed ODBC-driver called "MICROSOFT EXCEL DRIVER (*.XLS)"
The Source code
// this example creates the Excel file C:\DEMO.XLS, puts in a worksheet with two
// columns (one text the other numeric) an appends three no-sense records.
//
void MyDemo::Put2Excel()
{
CDatabase database;
CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // exactly the same name as in the ODBC-Manager
CString sExcelFile = "c:\\demo.xls"; // Filename and path for the file to be created
CString sSql;

TRY
{
// Build the creation string for access without DSN

sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",
sDriver, sExcelFile, sExcelFile);

// Create the database (i.e. Excel sheet)
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
{
// Create table structure
sSql = "CREATE TABLE demo (Name TEXT,Age NUMBER)";
database.ExecuteSQL(sSql);

// Insert data
sSql = "INSERT INTO demo (Name,Age) VALUES ('Bruno Brutalinsky',45)";
database.ExecuteSQL(sSql);

sSql = "INSERT INTO demo (Name,Age) VALUES ('Fritz Pappenheimer',30)";
database.ExecuteSQL(sSql);

sSql = "INSERT INTO demo (Name,Age) VALUES ('Hella Wahnsinn',28)";
database.ExecuteSQL(sSql);
}

// Close database
database.Close();
}
CATCH_ALL(e)
{
TRACE1("Driver not installed: %s",sDriver);
}
END_CATCH_ALL;
}

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧