//用CFile来创建文件
CFile file;
if(file.Open(L"test.xls",CFile::modeReadWrite))
{
MessageBox(L"Open File OK");
}
else
{
file.Open(L"test.xls",CFile::modeCreate | CFile::modeReadWrite);
MessageBox(L"File not exist to create");
} /*
//用CreateFile创建文件
HANDLE g_hFile = 0; // Handle to the opened file
g_hFile = CreateFile(L"test.xls",GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
*/
或参考如下http://topic.csdn.net/t/20010115/15/59053.html
在 VC++ 中 调 用 Excel对 象 的 技 术 叫 OLE Automation(现 在 叫 ActiveX Automation, 但 无 实 质 的 不 同 )。 它 实 技 上 是 用 VC++ 5.0编 写 OLE Automation的 客 户 机 , 而 让 Excel作 为 OLE Automation服 务 器 。 当 然 , VC++ 5.0也 可 以 用 来 编 写 OLE Automation的 服 务 器 , 让 Excel作 为 客 户 机 。 Automation技 术 是 一 项 非 常 重 要 的 技 术 , 它 使 得 你 可 以 在 不 同 的 软 件 之 间 进 行 非 常 方 便 的 调 用 , 比 如 可 以 让 FoxPro、 Delphi、 VB去 调 用 Excel。 Excel是 从 5.0版 开 始 支 持 Automation技 术 , 客 户 程 序 调 用 Excel的 过 程 类 似 于 使 用 VBA(Visual Basic for Application)进 行 编 程 , 所 以 要 想 实 现 Automation技 术 , 你 不 单 要 掌 握 VC++, 还 要 了 解 VBA。 Word虽 然 从 Word 97才 开 始 支 持 VBA, 但 从 6.0版 就 已 经 支 持 Automation技 术 了 , 只 不 过 使 用 的 是 Word Basic。 其 它 的 Office软 件 也 支 持 Automation技 术 。
在 VC++中 编 写 Automation客 户 程 序 是 非 常 容 易 的 。 在 ClassWizard中 选 择 Automation标 签 , 然 后 按 Add Class按 钮 , 再 选 择 From a type lib, 然 后 去 找 Excel的 type lib文 件 。 该 文 件 在 Excel目 录 下 , Excel 5.0为 XL50EN.OLB(英 文 版 )和 XL50CHS.OLB(简 体 中 文 版 ), Excel 97为 XL5EN32.OLB和 XL5CHS32.OLB, 选 择 其 一 即 可 。 此 时 , ClassWizard会 显 示 所 有 可 用 的 Excel对 象 供 选 择 如 果 你 要 获 取 单 元 格 中 的 内 容 , 可 以 选 择 Worksheet等 对 象 , 当 你 选 择 了 相 应 的 对 象 后 , ClassWizard将 建 立 C++的 类 , 你 可 以 在 程 序 中 调 用 该 类 的 成 员 。
CFile file;
if(file.Open(L"test.xls",CFile::modeReadWrite))
{
MessageBox(L"Open File OK");
}
else
{
file.Open(L"test.xls",CFile::modeCreate | CFile::modeReadWrite);
MessageBox(L"File not exist to create");
} /*
//用CreateFile创建文件
HANDLE g_hFile = 0; // Handle to the opened file
g_hFile = CreateFile(L"test.xls",GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
*/
或参考如下http://topic.csdn.net/t/20010115/15/59053.html
在 VC++ 中 调 用 Excel对 象 的 技 术 叫 OLE Automation(现 在 叫 ActiveX Automation, 但 无 实 质 的 不 同 )。 它 实 技 上 是 用 VC++ 5.0编 写 OLE Automation的 客 户 机 , 而 让 Excel作 为 OLE Automation服 务 器 。 当 然 , VC++ 5.0也 可 以 用 来 编 写 OLE Automation的 服 务 器 , 让 Excel作 为 客 户 机 。 Automation技 术 是 一 项 非 常 重 要 的 技 术 , 它 使 得 你 可 以 在 不 同 的 软 件 之 间 进 行 非 常 方 便 的 调 用 , 比 如 可 以 让 FoxPro、 Delphi、 VB去 调 用 Excel。 Excel是 从 5.0版 开 始 支 持 Automation技 术 , 客 户 程 序 调 用 Excel的 过 程 类 似 于 使 用 VBA(Visual Basic for Application)进 行 编 程 , 所 以 要 想 实 现 Automation技 术 , 你 不 单 要 掌 握 VC++, 还 要 了 解 VBA。 Word虽 然 从 Word 97才 开 始 支 持 VBA, 但 从 6.0版 就 已 经 支 持 Automation技 术 了 , 只 不 过 使 用 的 是 Word Basic。 其 它 的 Office软 件 也 支 持 Automation技 术 。
在 VC++中 编 写 Automation客 户 程 序 是 非 常 容 易 的 。 在 ClassWizard中 选 择 Automation标 签 , 然 后 按 Add Class按 钮 , 再 选 择 From a type lib, 然 后 去 找 Excel的 type lib文 件 。 该 文 件 在 Excel目 录 下 , Excel 5.0为 XL50EN.OLB(英 文 版 )和 XL50CHS.OLB(简 体 中 文 版 ), Excel 97为 XL5EN32.OLB和 XL5CHS32.OLB, 选 择 其 一 即 可 。 此 时 , ClassWizard会 显 示 所 有 可 用 的 Excel对 象 供 选 择 如 果 你 要 获 取 单 元 格 中 的 内 容 , 可 以 选 择 Worksheet等 对 象 , 当 你 选 择 了 相 应 的 对 象 后 , ClassWizard将 建 立 C++的 类 , 你 可 以 在 程 序 中 调 用 该 类 的 成 员 。
VCK上例子很多,但是最好先去了解COM的知识
1、通过automation启动excel实例,获得Excel.Application接口
2、调用NewDocument命令产生一个新文档
3、操作这个Document
4、执行Document.SaveAs方法
5、调用Application.Close方法
6、释放Application接口