• 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 > vc中操作excel文件的问题,帮忙了

vc中操作excel文件的问题,帮忙了

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

佚名通过本文主要向大家介绍了vc 6.0处理excel文件,vc 读取excel文件,vc 打开excel文件,vc excel,vc excel编程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: vc中操作 excel 文件的问题,帮忙了
描述:

void CExcelOpeDlg::TransUpData(Range &desRge, Range &sourceRge, int desSheetIndex, int ZoneIndex)
{
_variant_t OrderNum, PeopleNum;
//读取数据
OrderNum = sourceRge.GetItem(_variant_t((long)m_UpDataAddupRow),_variant_t((long)2));
PeopleNum = sourceRge.GetItem(_variant_t((long)m_UpDataAddupRow),_variant_t((long)3));
if (0 == desSheetIndex)
{
desRge.SetItem(_variant_t((long)(m_OrderNumLastYWRow + 1)), _variant_t((long)(ZoneIndex + 1)), OrderNum);
desRge.SetItem(_variant_t((long)(m_OrderNumLastYWRow + 2)), _variant_t((long)(ZoneIndex + 1)), PeopleNum);
}
else if (1 == desSheetIndex)
{
desRge.SetItem(_variant_t((long)(m_DetailedTableLastYWRow + 1)), _variant_t((long)(ZoneIndex * 2)), OrderNum);
desRge.SetItem(_variant_t((long)(m_DetailedTableLastYWRow + 1)), _variant_t((long)(ZoneIndex * 2 + 1)), PeopleNum);
}
}
这个函数把sourceRge中的数据给desRge赋值,程序运行中发现在多次调用该函数时,内存增加,直到应用程序退出时才会释放,不知道什么原因,高手帮忙看看?


解决方案1:

#include <ole2.h>
#include <stdio.h>
#pragma warning (disable:4146 4192 4786 4081)
#define USE_OFFICEXP 1
#ifdef USE_OFFICEXP
#import "C:\Program Files\Common Files\Microsoft Shared\Office10\MSO.DLL" 
#import "c:\\Program Files\\Common Files\Microsoft Shared\\VBA\VBA6\VBE6EXT.olb" 
#import "c:\Program Files\Microsoft Office\Office10\MSWORD.olb" rename("ExitWindows","ExitWindowsEx")
#import "c:\Program Files\Microsoft Office\Office10\excel.exe" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") \
         rename("DocumentProperties", "DocumentPropertiesXL") exclude("IFont","IPicture")
#else
#import "c:\Program Files\Microsoft Office\Office\MSO9.dll"
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" no_namespace 
#import "c:\Program Files\Microsoft Office\Office\MSWORD9.OLB" rename("ExitWindows","_ExitWindows")
#import "c:\Program Files\Microsoft Office\Office\excel9.olb" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") \
         rename("DocumentProperties", "DocumentPropertiesXL") exclude("IFont","IPicture")
#endif
int main(int argc, char* argv[])
{
int i = Excel::xlContinuous;
VARIANT varItem;
varItem.vt = VT_I4;
varItem.intVal = 1;
    ::CoInitialize(NULL);
    CLSID clsid;
CLSIDFromProgID(L"Excel.Application", &clsid); 
Excel::_ApplicationPtr pApp;
pApp .CreateInstance (clsid,NULL);
pApp ->PutVisible (0,VARIANT_TRUE);
Excel::_WorkbookPtr pWorkbook = pApp ->GetWorkbooks () ->Add ();
Excel::_WorksheetPtr    pSheet    = pWorkbook ->GetWorksheets ()  ->GetItem (varItem);
Excel::RangePtr     pRange    = pSheet ->GetUsedRange(0);
int iColCnt = pRange ->GetColumns() ->GetCount();
printf("used columns is %d\n",iColCnt);
int iRowCnt = pRange ->GetRows() ->GetCount();
printf("used rows  is %d\n",iRowCnt);
pRange = pSheet ->GetRange(OLESTR("A1"));
pRange ->Value2     = OLESTR("SOME");
Excel::InteriorPtr  pInterior= pRange ->GetInterior ();
varItem.intVal = 0xff0000;
pInterior ->PutColor (varItem);
pSheet ->PrintPreview ();
    ::CoUninitialize();
    return 0;
}


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

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

  • 关于如何用VC生成EXCEL文件的问题
  • VC处理Excel方法
  • vc直接往打开的EXCEL文件里写数据
  • vc处理CAD文件
  • VC中创建Excel文件
  • VC打开EXCEL文件时链接出错,请大家看看,谢谢!
  • vc中操作excel文件的问题,帮忙了

相关文章

  • 2017-06-04 typedef下ATL的CString为String,链接警告
  • 2017-06-04 CAtlMap与4244警告
  • 2017-06-05 FindWindow的问题,如何确定ClassName,SPY++并不能解决这个问题?
  • 2017-06-04 用MFC对CSV文件进行写入数据,如何使其写入新的一列。
  • 2017-06-04 我想问一下,那位大虾有Winamp的相关编程文档,例如:插件的接口定义
  • 2017-06-05 求助帖关于ShellNamespace右键菜单的问题
  • 2017-06-05 系统会加载DLL两次吗?
  • 2017-06-05 为什么拦截不到DrawText函数?
  • 2017-06-05 请问怎么获取显示桌面的消息??谢谢
  • 2017-06-04 求助:Adonix的Callocx应该怎么调用别的语言开发的控件,附语法说明

文章分类

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

最近更新的内容

    • 工业无人值守软件开发过程中---如何对付内存泄漏的第三方软件
    • 500元(不是500分)求Win2K/NT下直接控制并口源代码。。。。
    • 帮忙!!!!!!!!InsdieOLE的代码怎么运行
    • 客户端如何调用COM?
    • ActiveX字体
    • 急问,关于名字空间和智能指针的问题
    • 关于dll文件的入口函数dllmain
    • vc怎么总是乱改我的程序
    • 类型转换错误,不知道是怎么错的
    • VC++60调用ADO出错?

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

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