MFC读写excel文件

2023-11-19

/**

@MyExcel.cpp

*/

#include "stdafx.h"

#include "MyExcel.h"


CMyExcel::CMyExcel()
{
StartApp();
}


CMyExcel::~CMyExcel()
{
books.Close();
sheet.ReleaseDispatch();
    sheets.ReleaseDispatch();
    book.ReleaseDispatch();
    books.ReleaseDispatch();
range.ReleaseDispatch();
ExcelApp.Quit();
    ExcelApp.ReleaseDispatch();
}


//初始化excel程序
void CMyExcel::StartApp(void)
{
//创建Excel 服务器(启动Excel)
    if(!ExcelApp.CreateDispatch(_T("Excel.Application"),NULL))
    {
        AfxMessageBox(_T("启动Excel服务器失败!"));
        return ;
    }
ExcelApp.put_Visible(FALSE);
    ExcelApp.put_UserControl(FALSE);


}


//打开book工作簿
void CMyExcel::OpenWorkBook(const CString &strFilePath)
{
/*得到工作簿容器*/
    books.AttachDispatch(ExcelApp.get_Workbooks());


    /*打开一个工作簿,如不存在,则新增一个工作簿*/
    CString strBookPath = strFilePath;


    /*打开一个工作簿*/
    lpDisp = books.Open(strBookPath, 
            vtMissing, vtMissing, vtMissing, vtMissing, vtMissing,
            vtMissing, vtMissing, vtMissing, vtMissing, vtMissing, 
            vtMissing, vtMissing, vtMissing, vtMissing);
    book.AttachDispatch(lpDisp);
}


//附件1的读取方法
void CMyExcel::ReadExcel(const CString &strFilePath)
{
OpenWorkBook(strFilePath);


/*得到工作簿中的Sheet的容器*/
    sheets.AttachDispatch(book.get_Sheets());
lpDisp = sheets.get_Item(_variant_t((long)1));
sheet.AttachDispatch(lpDisp);
CRange oCurSel;
range.AttachDispatch(sheet.get_UsedRange());


range.AttachDispatch(range.get_Rows());
long row = range.get_Count();


range.AttachDispatch(range.get_Columns());
long col = range.get_Count();


range.AttachDispatch(sheet.get_Cells());
for(int i = 2; i <= row; ++i)
{
for(int j = 1; j <= col; ++j)
{
oCurSel.AttachDispatch(range.get_Item(_variant_t((long)i),_variant_t((long)j)).pdispVal);
VARIANT res =
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MFC读写excel文件 的相关文章

  • Excel VBA:通过快捷键运行打开文档后宏挂起,但从 VB 编辑器运行完美

    我遇到了一个奇怪的问题 我决定分配一个键盘快捷键Ctrl Shift P我的 VBA 例程之一 该例程假设打开一个现有的 Excel 工作簿 复制一些信息并 SaveAs另一个名字 当我在 Visual Basic 编辑器中点击 播放 时
  • 防止 Excel 公式中的单元格数量增加

    我在 Excel 中有一个公式 需要根据该行中的数字除以一个常数对该列的几行运行 当我复制该公式并将其应用于范围中的每个单元格时 所有单元格编号都会随行增加 包括常量 所以 B1 127 C4 IF B4 lt gt B4 B1 如果我复制
  • C++ 检查 unicode 字符是否为全角

    如何检查unicode字符是否是全角 我使用Win32 MFC 例如 中是全宽 A不是全角 是全宽 F不是全宽 你需要的是检索东亚宽度 http www unicode org reports tr11 的角色 您可以通过解析来做到这一点东
  • VBA中工作表变化的递归调用

    我已经创建了包含多个工作表的工作簿 我正在尝试使用 WorkSheet ChangeSheet1 即工作表 1 上的某些更改正在复制到工作表 2 中 同样 如果有任何改变Sheet2我想做出类似的改变Sheet1以及 这样做时 两张表上都会
  • 数据透视和运行时错误 1004:应用程序定义或对象定义的错误

    我对宏和 VBA 编码很陌生 我正在尝试创建一个非常简单的宏 它从包含 33 列的表中获取数据并将其转换为数据透视表 只有最后 3 列 31 32 33 包含数字 我需要将其显示在枢轴上 因为我想比较当前月份 上个月以及逐月的变动 到目前为
  • 带有 For 循环的多维数组 VBA

    尝试检查第一列中的值 即多维数组中的列 如果它匹配 则对另一列中与该行匹配的值进行排序 我认为我做错了 但这是我第一次搞乱多维数组 我是否需要在每个 for 循环中使用 UBound 和 LBound 来告诉它要查看哪一列 除了当前问题的答
  • 使用 C# 在 Powerpoint 2013 中创建具有多个系列的图表

    我使用的是 VS2013 Ultimate 带有 Office 2013 已安装 PowerPoint Excel 和 Word 我正在用 C 编码 我正在使用 C 创建 PowerPoint 演示文稿 到目前为止 我已经成功地完成了我想做
  • 使用 VBA 清除 Excel 单元格格式而不清除 NumberFormat

    是否可以在不改变 的情况下清除Excel单元格格式和内容 使用VBA NumberFormat 给定的单元格 我尝试过 ClearContents ClearFormats 但 ClearFormats 删除了数字格式细胞也 请建议 你可以
  • 在 Excel 2010 中添加基本功能区的 VBA 代码?

    我已经使用产品在 C addin express 中为 Excel 编写功能区 但我需要知道如何使用 vba 生成功能区 有人能为我提供一些代码来为此在工具栏中插入一个额外的功能区吗 我所说的功能区是指上面写着 公式 数据 评论 等的地方
  • 有没有一种方法可以通过对一列求和并基于另一列来提取数据

    我正在尝试按帐户按月汇总金额 并将结果按帐户显示在另一个单元格中 AND E1 gt MONTH E1 E8 SUMPRODUCT F 1 F 8 gt MONTH E1 E8 6 D 1 F 8 D1 gt 0 6 Account Amo
  • 连接两列之间的排列

    我需要有关 Excel 作业的帮助 Name City John London Maxx NY Ashley DC Paris 解决这个问题的方法必须是 John london John NY John DC John Paris Maxx
  • 如何让 selenium 等待页面在 Selenium - Excel VBA 包装器中完全加载?

    Selenium Excel VBA 的包装器使用什么代码或函数 以便程序将等待页面完全加载然后执行其他命令 最新版本在执行所需操作之前隐式等待目标元素存在 例如 driver FindElementById Click 默认情况下会在抛出
  • 使用 Apache POI 和 Java 创建 Excel (.xlsx) 文件后文件损坏

    我已经使用 Apache POI API 使用 Java 成功创建了 xlsx 格式的工作簿 Excel 我的代码如下 在 D 盘创建一个名为 RiponAlWasim xlsx 的文件 Workbook wb new XSSFWorkbo
  • 当行数 = 0 时删除 Excel 列中的单元格

    我试图删除电子表格中某一列中的所有单元格 0 并 召唤 不在该列顶部的值 我目前正在使用 Dim row index As Integer Dim col index As Integer row index 7 col index 16
  • 有没有办法使用 openpyxl 或 xlsxwriter 保护工作簿?

    我正在尝试自动化 Excel 报告 并且我希望用户不要尝试重命名或重新排序工作表 虽然我使用 xlsxwriter 保护单个单元格没有问题 但我没有看到保护工作簿本身的选项 我正在寻找 openpyxl 但教程似乎没有任何效果 编辑 我现在
  • VBA 代码中的 Excel 公式

    所以 在 Sheet1 中 我有一些名称的基础 它看起来像这样 在 Sheet2 中 我正在使用 Sheet1 中的这些名称 我这样做的方式是在 A 列中输入代码值 在 B 列中输入名称 在 C 列中输入姓氏 看起来像这样 我已经用公式完成
  • 如何粘贴到Excel B列的最后一行?

    我需要将单元格从 H2 L2 一直向下剪切并将其粘贴到 B 列的最后一行 数据每次都会不同 所以我无法对任何范围进行硬编码 VBA 代码会很好 从 H2 L2 向下剪切并粘贴 插入到 B 列的最后一行 到目前为止我得到了 Range H2
  • 如何每次使用按钮将数据添加到 MATLAB 中的现有 XLSX 文件?

    我有一个函数可以生成一些变量 例如分数 对 错 未回答 使用按钮调用此功能 问题是如何每次将函数生成的这些值添加 附加到 XLSX 文件中 或者 如何创建 MAT 文件以便可以添加它 可能的解决方案是什么 附加到 xls 文件所涉及的挑战是
  • 使用 Jquery Easyui 将数据网格导出到 Excel

    我是 json 新手 我使用 php 从 mysql 表生成了 jason 数据 并希望将生成的 json 导出为 xls 格式 考试导出 php
  • Range.End() 困惑

    我有一个关于 VBA 中 Range End 属性的一般性问题 我已经阅读了有关该房产的信息here http msdn microsoft com en us library bb221181 aspx 但我还是很困惑 例子 With w

随机推荐

  • Linux命令学习之nslookup

    比如我想查看 一个IP地址的域名的话 可以用nslookup这个命令 test test nslookup ip address 参考 http roclinux cn p 2441 nslookup何许人 nslookup命令 是Linu
  • 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示,,,

    题目介绍 给出两个 非空 的链表用来表示两个非负的整数 其中 它们各自的位数是按照 逆序 的方式存储的 并且它们的每个节点只能存储 一位 数字 如果 我们将这两个数相加起来 则会返回一个新的链表来表示它们的和 您可以假设除了数字 0 之外
  • 昨晚,谷歌发布了一个可怕的人工智能!

    昨晚 谷歌召开了一年一度的Google I O大会 没有太多废话 谷歌CEO劈柴直接抛出了这次大会的主题 AI人工智能 AI能做什么 其实 黑友们每天都在使用它 比如Siri或X爱助手 我们可以这样问 讲个笑话 1 1是多少 今天星期几 天
  • 成功解决Unable to allocate xxx MiB for an array with shape (xxxx, xxxx)

    原因 数据量太大 导致cpu内存不足导致的 解决方法 换个性能更好的电脑 numpy 在定义数组的时候 采用更低的精度 从float64降低为float32 array np zeros 10000 10000 dtype float32
  • 【Neo4j】第 1 章:图数据库

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Git安装与仓库配置(附带)

    Git的安装与仓库配置 前期准备 安装与配置 安装Git 注册账户 环境配置 配置用户名与邮箱 生成SSH 添加SSH 配置仓库 仓库建立 初始化仓库 提交文件操作 Git 的基本语法总结 总结小话 前期准备 下载Git安装包 根据需求不同
  • oracle bitmap join index

    下面是官网对于位图联合索引的说明 Use the bitmap join index clause to define a bitmap join index A bitmap join index is defined on a sing
  • centos6.5下php添加pdo_mysql扩展

    我的Mysql是用RPM方式安装的 PHP5 5是用源码编译安装的 查看phpinfo 后 发现没有pdo mysql扩展 进去到php的源码包的ext中 root linux php cd usr local src php 5 5 18
  • 最常用的五大算法

    一 贪心算法 贪心算法 又称贪婪算法 是指 在对问题求解时 总是做出在当前看来是最好的选择 也就是说 不从整体最优上加以考虑 他所做出的仅是在某种意义上的局部最优解 贪心算法不是对所有问题都能得到整体最优解 但对范围相当广泛的许多问题他能产
  • tomcat发布必须配置JAVA_HOME,但可以不配置CATALINA_HOME

    在同一台服务器上 使用tomcat 发布多个应用是经常的事情 经常出现的问题 1 就是tomcat多个应用之间不能使用同一个端口 今天又遇到一个问题 纠结上好长时间 记录 之前发布第一个应用的时候 按照网上的java开发的配置 把CATAL
  • printk()和printf()的比较

    1 前言 print函数和printf函数是对孪生兄弟 在功能作用上几乎是一样的 在使用上有一些区别 1 printk 和printf 之间的一个显著区别在于printk 允许通过指定一个标志来设置优先级 从而决定这条打印是否需要打印出来
  • STM32 GPIO的学习

    1 GPIO的作用 目前我使用的是STM32F0xx系列 参考数据手册Memory Map处可以看到ST所有的外设寄存器均处于Peripherals处 地址范围为0x40000 0000 0x48001800 其中包含了APB1 APB2
  • 孤立森林的简要记录

    20200920 0 引言 在之前的时候 进行一些任务分类的时候 使用过孤立森林来实现一些代码 但是也没有具体来深究原理 只知道这个跟随机森林有些像 都是决策树的一种集成方式 最近正好看到了这部分内容 就正好记录一下 本部分内容主要是有文章
  • gorm报错reflect: reflect.Value.SetInt using unaddressable value

    reflect reflect Value SetInt using unaddressable value 这种报错是应该传地址的时候传了值导致的 经过检查 gorm包下的方法如Create的参数应该是地址 比如 err global D
  • 代码复现不稳定应该怎么调整

    tensorflow转为pytorch代码 复现结果浮动较大 尝试方法 在测试和验证部分加入 model eval 去掉训练部分的shuffle 保证每次送入的数据一样 设定各个部分的随机种子 random seed 42 np rando
  • 8种常见的 代码 编译 软件 !!

    VS Code Source Insight Vim UltraEdit eclipse Understand Atom Sublime Text 接下来详细为大家讲解一下它们各自的用途 目录 1 VS Code 2 Source Insi
  • 密码学哈希函数_哈希函数在密码学中的应用

    密码学哈希函数 A Hash Function is a mathematical function that converts a numerical value into another compressed numeric value
  • FullGC问题分析

    一 常见的FullGC场景分析 频繁的大对象 大对象直接被分配到老年代 系统高负载运行 请求量很大 jvm来不及将对象转移到老年代 直接到老年代分配对象 系统内存泄漏 导致对象长时间在老年代 得不到释放 二 产生FullGC的原因 Syst
  • Tracy 小笔记 Vue - 数据展示,基本指令,绑定属性 v-bind,v-for,条件渲染,强制渲染

    数据展示 插值操作 data 里的数据都是怎么显示在页面上的 Mustache 语法 胡须 也就是双大括号 变量 简单表达式 基本指令 v once 指令的使用 h2 message h2 如果需求是只显示最初的值 以后值不变 就要加这个指
  • MFC读写excel文件

    MyExcel cpp include stdafx h include MyExcel h CMyExcel CMyExcel StartApp CMyExcel CMyExcel books Close sheet ReleaseDis