• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 高分请教-如何保存excel文件

高分请教-如何保存excel文件

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了excel最高分最低分,excel最高分函数,excel最高分,excel求最高分,excel怎么求最高分等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 高分请教 - 如何保存excel文件
描述:

我在VC中通过自动化生成一个excel文件(或打开一个已有的文件),在程序运行的过程中编辑文件。但编辑后的文件不知道怎么保存下来。怎么办?


解决方案1:

http://www.vckbase.com/document/viewdoc/?id=1168
VC中调用EXECL模板生成报表
作者:叶利华
  void CExceltestDlg::OnButton1() 
{
// TODO: Add your control notification handler code here
_Application ExcelApp; 
Workbooks wbsMyBooks; 
_Workbook wbMyBook; 
Worksheets wssMysheets; 
_Worksheet wsMysheet; 
Range rgMyRge; 
//创建Excel 2000服务器(启动Excel) 
if (!ExcelApp.CreateDispatch("Excel.Application",NULL)) 
{ 
AfxMessageBox("创建Excel服务失败!"); 
exit(1);
} 
ExcelApp.SetVisible(false); 
//利用模板文件建立新文档 
char path[MAX_PATH];
GetCurrentDirectory(MAX_PATH,path);
CString strPath = path;
strPath += "\\template1";
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath)));
//得到Worksheets 
wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);
//得到sheet1 
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true);
//添加模板个数
for(int i=0;i<4;i++){
wsMysheet.Copy(vtMissing,_variant_t(wsMysheet));
}
CString str1;
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true);
str1 = "第1页";
wsMysheet.SetName(str1); 
for(i=0;i<wssMysheets.GetCount()-1;i++){ //此地方该显示时缺少两项
wsMysheet = wsMysheet.GetNext();
str1.Format("第%d页",i+2);
wsMysheet.SetName(str1);
}
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("第1页")),true);
//得到全部Cells,此时,rgMyRge是cells的集合
rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);
//设置1行1列的单元的值
CString str=_TEXT("21:12");
rgMyRge.SetItem(_variant_t((long)7),_variant_t((long)3),_variant_t(str)); 
rgMyRge.SetItem(_variant_t((long)9),_variant_t((long)3),_variant_t(str));
  rgMyRge.SetItem(_variant_t((long)7),_variant_t((long)4),_variant_t(str)); 
rgMyRge.SetItem(_variant_t((long)8),_variant_t((long)4),_variant_t(str)); 
rgMyRge.SetItem(_variant_t((long)9),_variant_t((long)4),_variant_t(str)); 
rgMyRge.SetItem(_variant_t((long)10),_variant_t((long)4),_variant_t(str)); 
rgMyRge.SetItem(_variant_t((long)11),_variant_t((long)4),_variant_t(str)); 
rgMyRge.SetItem(_variant_t((long)12),_variant_t((long)4),_variant_t(str));
//将表格保存
strPath = path;
strPath += "\\ylhexcel.xls";
wsMysheet.SaveAs(strPath,vtMissing,vtMissing,vtMissing,vtMissing,
vtMissing,vtMissing,vtMissing,vtMissing);
ExcelApp.SetVisible(true); 
wbMyBook.PrintPreview(_variant_t(false)); 
//释放对象 
rgMyRge.ReleaseDispatch(); 
wsMysheet.ReleaseDispatch(); 
wssMysheets.ReleaseDispatch(); 
wbMyBook.ReleaseDispatch(); 
wbsMyBooks.ReleaseDispatch(); 
ExcelApp.ReleaseDispatch(); 
}

解决方案2:

LPDISPATCH lpDisp;
lpDisp=GetIDispatch();//获取
TCHAR szTempPath[MAX_PATH],szTempFile[MAX_PATH];
    DWORD dwResult=::GetTempPath(MAX_PATH,szTempPath);
GetTempFileName(szTempPath,_T("TelStar_"),0,szTempFile);
CString strTempDocPath;
strTempDocPath=szTempFile;
USES_CONVERSION;
WCHAR* wcPathName=T2W(szTempFile);
IStorage* pStorage=NULL;
BOOL bSuccess=FALSE;
if(SUCCEEDED(StgCreateDocfile(wcPathName,STGM_READWRITE|STGM_SHARE_EXCLUSIVE|STGM_CREATE,0,&pStorage)))
{
IPersistStorage* pPersistStorage=NULL;
if(SUCCEEDED(lpDisp->QueryInterface(IID_IPersistStorage,(void**)&pPersistStorage)))
{
if(SUCCEEDED(OleSave(pPersistStorage,pStorage,FALSE)))
{
pPersistStorage->SaveCompleted(NULL);
}
pPersistStorage->Release();
}
pStorage->Release();
}

解决方案3:

http://www.vchelp.net/vchelp/archive.asp?type_id=42&class_id=1&cata_id=10&article_id=749
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=193203

解决方案4:

_Application ExcelApp; 
Workbooks wbsMyBooks; 
_Workbook wbMyBook; 
Worksheets wssMysheets; 
_Worksheet wsMysheet; 
if (!ExcelApp.CreateDispatch("Excel.Application")) 
{ 
AfxMessageBox("创建Excel服务失败!"); 
return 1;
} 
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
//AfxMessageBox(excelfilename);
wbMyBook.AttachDispatch(wbsMyBooks.Open(excelfilename,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional),// Open has 13 parameters
true); 
wbMyBook.Save();


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 高分寻求VC处理Excel的4个问题
  • 高分求救:如何打印excel文件中的表格?
  • 高分请教--如何保存EXCEL文件?
  • 高分请教-如何保存excel文件
  • 高分请教Excel中find的问题???

相关文章

  • 2017-06-05 创建ATL项目
  • 2017-06-04 ActiveX控件中GDI+的Image::FromFile创建图片总是失败,但普通程序中可以,这是为什么?
  • 2017-06-05 求助:ocx循环显示图片
  • 2017-06-04 activeX控件如何实现打印预览功能?
  • 2017-06-04 熟悉ATLServer和WebService的朋友请帮忙
  • 2017-06-04 救人要紧!我的同学说要自杀!就因为一个com,不!应该说是函数的问题!事后200分相送。
  • 2017-06-05 ReadFile阻塞的问题~~
  • 2017-06-04 要在原有的程序里实现语音控制,大家给个方案吧?
  • 2017-06-05 请问如何向线程内传递多个参数,怎么写呢?
  • 2017-06-04 消息队列MSMQ

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 关于线程ctrl+c终止的问题
    • MFC封装OCX问题后,内存释放问题。
    • WTL中如何修改树形框节点的名称?求代码解释
    • 一个IE上用到的OCX控件问题,大家来讨论下!
    • 谁熟悉MSCOMM怎样设置才能产生"接受到数据"事件,请详细告诉我吧!!
    • 这段VB代码vc++该怎么写
    • 如何用多线程表示的问题
    • 感兴趣的进来讨论一下WTL(关于模板库跟MFC的比较)
    • KodakImageEdit控件图片缩小
    • COM+为什么没有负载平衡

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有