MFC编程:将数据保存到EXCEL中

MFC 专栏收录该内容
1 篇文章 0 订阅

使用ODBC完成

网上的程序大同小异,只是有个别问题搜了好久没有解决,技术小白,用的时候还不知道ODBC是什么,也不懂SQL,给需要的人一个参考。

我的程序是统计每个方向的个数,并将其保存到excel中,代码如下:

void CDemoDlg::OnBnClickedButtonExcel()
{

	 TODO: 在此添加控件通知处理程序代码
	CDatabase database;
	CString sDriver = "Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)"; // Excel安装驱动,一定要写完整的名字
	CString sExcelFile, sPath; 
//	CString sSql;
	char sSql[500];

	获取主程序所在路径,存在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文件

										   // 创建数据库 (既Excel表格文件)

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

		if (database.OpenEx(sSql, CDatabase::noOdbcDialog))
		{

			sprintf(sSql, "CREATE TABLE 方向统计表( 方向 TEXT,个数 TEXT)");
			database.ExecuteSQL(sSql);

			sprintf(sSql, "INSERT INTO 方向统计表(方向,个数) VALUES('%s','%d')", "0°", count0);//写入一个int型的变量
			database.ExecuteSQL(sSql);

			sprintf(sSql, "INSERT INTO 方向统计表(方向,个数) VALUES('%s','%d')", "45°", count45);
			database.ExecuteSQL(sSql);

			sprintf(sSql, "INSERT INTO 方向统计表(方向,个数) VALUES('%s','%d')", "90°", count90);
			database.ExecuteSQL(sSql);

			sprintf(sSql, "INSERT INTO 方向统计表(方向,个数) VALUES('%s','%d')", "135°", count135);
			database.ExecuteSQL(sSql);
		}

		database.Close();
		AfxMessageBox("Excel文件写入成功!");

	}
		CATCH(CMemoryException, e)
	{
		AfxMessageBox("数据写入到Excel出错了");
		database.Close();
	}
	END_CATCH
}
其中,count0,count45,count90,count135是int类型的变量。

  • 1
    点赞
  • 0
    评论
  • 11
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值