社区
数据库
帖子详情
VC中如何操作Excel文件?
RiskyWei
2004-02-26 05:19:20
希望在VC里建立一个新Excel文件,并对其进行数据添加、修改以及删除操作,该如何实现?我导入Excel9.olb类型库后,不知道该怎么操作,请大家指点,最好给出示列代码,谢谢了
...全文
76
1
打赏
收藏
VC中如何操作Excel文件?
希望在VC里建立一个新Excel文件,并对其进行数据添加、修改以及删除操作,该如何实现?我导入Excel9.olb类型库后,不知道该怎么操作,请大家指点,最好给出示列代码,谢谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
crgxw
2004-06-26
打赏
举报
回复
OLE程序开发利用(开发EXCEL)
一、首先打开类向导(MFC ClassWizard) 选择Add Class按钮中的 From a type library...找到
Office 目录下的文件 EXCEL9.OLB 并打开。
二、在Confirm Class中的类框中选择你所需的类(EXCEL中的对象)后按OK按钮后依次添加 _Application 、Workbooks 、_Workbook 、Worksheets 、_Worksheet 和 Range类。
三、添加头文件
#include <comdef.h>
#include "excel9.h"
四、代码如下:
void CParameterApp::CreateRepTemp()
{
_Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
Range rgMyRge;
CString strSqlStmt;
CString strRepTemplate="c:\\报表\\报表.xlt";
///////////////////////////////////////////////////////////////////////////
CFileFind filefind;
int iFileExist= filefind.FindFile((LPCTSTR)strRepTemplate);
///////////////////////////////////////////////////////////////////////////
if(CoInitialize(NULL)!=0)
{
AfxMessageBox("初始化COM支持库失败!");
exit(1);
}
COleException *e = new COleException;
try
{
if(!ExcelApp.CreateDispatch("Excel.Application.9",e))
throw e;
}
catch (COleDispatchException * e)
{
CString cStr;
if (!e->m_strSource.IsEmpty())
cStr = e->m_strSource + " - ";
if (!e->m_strDescription.IsEmpty())
cStr += e->m_strDescription;
else
cStr += "unknown error";
AfxMessageBox(cStr, MB_OK,
(e->m_strHelpFile.IsEmpty())? 0:e->m_dwHelpContext);
e->Delete();
}
ExcelApp.SetCaption(_T("FARAD 200D 报表模板设置"));
file://得到Workbooks
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
if( iFileExist)
{
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t((CString)strRepTemplate)));
file://wbMyBook.SetSaved(true);
file://ExcelApp.GetSaveAsFilename (vtMissing,vtMissing,vtMissing,vtMissing,_variant_t("vtMissing"));
file://wbMyBook.Save ();
file://("xlShared")
file://wbMyBook.SaveAs(_variant_t("d:\\我的工作表.xls"),_variant_t("xlAddIn"),vtMissing,vtMissing,vtMissing,vtMissing,_variant_t(long (1)),_variant_t("xlUserResolution"),vtMissing,vtMissing,vtMissing);
file://运行宏(CString)
ExcelApp.Run(_variant_t("auto_open"),vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing
,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing
,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing
);
ExcelApp.SetVisible(true);
ExcelApp.ReleaseDispatch();
}
else
{
CString strSQL=_T("SELECT 报表名称 FROM 报表设置表 ");
PrePareRepName(strSQL);
wbMyBook.AttachDispatch(wbsMyBooks.Add(vtMissing));
file://得到Worksheets
wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);
file://得到sheet1
// wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true);
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t((long)1)),true);
wsMysheet.SetName(_T("AI"));
file://得到全部Cells,此时,rgMyRge是cells的集合
rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);
file://设置单元的值
strSqlStmt=PrepareSQL("AI历史表");// 获得查询语句
SetTemplateData(&rgMyRge,strSqlStmt);
file://得到所有的列
rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true);
file://设置列宽
rgMyRge.SetColumnWidth(_variant_t((long)15));
file://设置对齐方式
rgMyRge.SetHorizontalAlignment(_variant_t(BYTE(3)));//3:居中
file://得到sheet2
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t((long)2)),true);
wsMysheet.SetName(_T("COUNTER"));
file://得到全部Cells,此时,rgMyRge是cells的集合
rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);
file://设置单元的值
strSqlStmt=PrepareSQL("COUNTER历史表");// 获得查询语句
SetTemplateData(&rgMyRge,strSqlStmt);
file://得到所有的列
rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true);
file://设置列宽
rgMyRge.SetColumnWidth(_variant_t((long)15));
file://设置对齐方式
rgMyRge.SetHorizontalAlignment(_variant_t(BYTE(2)));//2:左对齐
file://得到sheet3
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t((long)3)),true);
wsMysheet.SetName(m_strRepNameArray[0]);
wsMysheet.Activate();
// wsMysheet.SetVisible((long)0);//使sheet3不可视
ExcelApp.SetVisible(true);
file://添加所有的报表表单
AddSheet(wssMysheets, wsMysheet);
file://运行宏
ExcelApp.Run(_variant_t((CString)"宏2"),vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing
,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing
,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing
);
wbMyBook.SetSaved(true);
ExcelApp.SetVisible(true);
file://保存文件
wbMyBook.SaveCopyAs(_variant_t((CString)strRepTemplate));
file://释放对象
if(m_strRepNameArray.GetSize()>0)
m_strRepNameArray.RemoveAll();
rgMyRge.ReleaseDispatch();
wsMysheet.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
wbMyBook.ReleaseDispatch();
wbsMyBooks.ReleaseDispatch();
ExcelApp.ReleaseDispatch();
}
CoUninitialize();
}
在
VC
中
如何创建
Excel
文档?
在
VC
中
操作
Excel
一般被认为较难,而创建
Excel
文档更被认为很难。 以下程序段可以帮助你。
VC
保存
EXCEL
文件
这是关于
VC
操作
Excel
文件
的一些说明,对于学习
VC
操作
Excel
文件
有一定的参考价值。
用
VC
#.NET开发交互式CAD系统
用
VC
#.NET开发交互式CAD系统,包括结合GDI+和OPENGL两种方案。 联系平台客服可开发票。
VC
如何创建
EXCEL
文件
通过程序展示了
VC
++如何创建,访问
EXCEL
文件
,简单易懂,让你对
EXCEL
操作
有一个基本的了解
VC
下对
Excel
进行
操作
的类,基于
VC
的
Excel
文件
编程
如果您需要在
VC
中
对
Excel
文件
进行
操作
,您只需要将
Excel
Proc.cpp和
Excel
Proc.h添加到您的
VC
工程
中
,即可调用其方法方便快捷的对
Excel
文件
进行
操作
,代码已经经过测试通过。
数据库
4,011
社区成员
39,816
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章