首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Excel.Worksheet中C#中删除图像

如何在Excel.Worksheet中C#中删除图像
EN

Stack Overflow用户
提问于 2015-10-05 12:21:16
回答 2查看 1.7K关注 0票数 2

我正在为Excel开发一个C#文档级自定义VSTO。在它中,我会看到一些工作表中包含了一些Bitmaps

清除它们的最佳方法是什么?

在VBA中,答案就像接受一个Worksheet对象,然后调用WorksheetX.Pictures.Clear()方法一样简单。我尝试了一种直接的C#翻译:

代码语言:javascript
运行
AI代码解释
复制
Excel.Worksheet TempSheet = Globals.ThisWorkbook.Worksheets(IndexVar);
TempSheet.Pictures.Clear();

但不幸的是,Worksheet.Pictures没有可用的方法或属性。接下来,我想我可以在Worksheet.OLEObjects中找到它们,但即使是在1比1的集合中,我也发现图像不是存储在那里的。

然后,我试图更仔细地查看Excel.Worksheet方法 (和属性)的MS列表,唯一能找到的是Excel.Worksheet.Pictures,它包含了一个可爱的注释:

此API支持Visual基础结构,不打算直接从代码中使用。

所以现在我又回到了我最初的问题,我如何获得包含在工作表中的图像?我有什么明显的遗漏吗?

我目前的解决办法是可以VBA微型,但这是非常麻烦。如果可能的话,我宁愿在C#中处理这一切,以避免任何VBA。

如果我有超过一张图片在纸上,我可以运行:

代码语言:javascript
运行
AI代码解释
复制
Excel.Worksheet TempSheet = Globals.ThisWorkbook.Worksheets(IndexVar);
foreach (void XXX in TempSheet.Pictures) {
    if (XXX.Index > 1) {
        XXX.Delete();
    }
}

这会留下一个图像(我猜是基于1而不是0的计数)

但如果我试着:

代码语言:javascript
运行
AI代码解释
复制
Excel.Worksheet TempSheet = Globals.ThisWorkbook.Worksheets(IndexVar);
foreach (void XXX in TempSheet.Pictures) {

        XXX.Delete();

}

然后它会导致Excel崩溃。

EN

回答 2

Stack Overflow用户

发布于 2015-10-05 13:10:00

我不是VSTO的用户,但在删除索引高于1的所有图片时,似乎只剩下一张图片。我建议更改这一行:

代码语言:javascript
运行
AI代码解释
复制
if (XXX.Index > 1) {

至:

代码语言:javascript
运行
AI代码解释
复制
if (XXX.Index >= 1) {

希望它现在能删除所有的东西。

票数 0
EN

Stack Overflow用户

发布于 2015-12-19 05:11:54

首先确定图片的计数和删除。

下面的代码行将帮助您识别工作集中图片的计数。

WorkSheet.Pictures().Count

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32957240

复制
相关文章
【C++ 语言】引用 ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )
C++ 对 C 扩充 : 引用 ( Reference ) 概念 , 是 C++ 在 C 的基础上进行的扩充 , 在 C 语言中是没有引用的 ;
韩曙亮
2023/03/27
1.2K0
【C++】C++ 引用详解 ⑦ ( 指针的引用 )
普通变量的 引用 , 调用时可以直接当做 普通变量 使用 , 可实现的功能 相当于 一级指针 ;
韩曙亮
2023/10/15
3860
【C++】C++ 引用详解 ⑦ ( 指针的引用 )
详解c++指针的指针和指针的引用
展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它。(这里说的指针的指针不是一个二维数组) 为什么需要使用它们 当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方法,也可以说传递指针是指针的值传递。 如果我们在方法内部修改指针会出现问题,在方法里做修改只是修改的指针的copy而不是指针本身,原来的指针还保留着原来 的值。我们用下边的代码说明一下问题: int m_value = 1; void func(int *p) { p = &m_value; } i
lpxxn
2018/01/31
1.3K0
C++ 指针、引用的梳理
& 地址运算符,可以概括为 取址运算符,从变量或对象等获取到该元素所在的内存空间中对应的地址。
雪碧君
2023/02/15
4950
【C++】引用与指针
在C++中,引用的本质其实就是给一个已经存在的变量”起别名“。也就是说,引用与它所引用的对象共用一块空间。(同一块空间的多个名字)
诺诺的包包
2023/02/20
4450
c++:指针和引用的区别
3、引用在初始化时引用一个实体后,就不能再引用其他实体,因为其本质是一个指针常量,无法改变指向。而指针可以在任何时候指向任何一个同类型实体。
青衫哥
2023/03/31
5410
c++:指针和引用的区别
C++ 指针和引用的区别
该文介绍了C++指针和引用的区别:指针是一个变量,它存储的是内存地址,可以指向任何数据类型,引用的本质是变量的别名,用于简化代码。使用引用时,不需要进行类型转换,代码更简洁。同时,指针和引用在内存中会占据不同的空间,引用会存储在栈中,而指针则会存储在堆中。
chaibubble
2018/01/02
1K0
C++指针与引用的区别
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/53871767
大黄大黄大黄
2018/09/14
6940
【C++】自引用this指针的秘密
当我们在进入一个房子之后,可以看见房子里的桌子、椅子、地板等,但是看不到房子的全貌。对于一个类的实例来说,你可以看到它的成员函数、成员变量,但是实例本身呢?this是一个指针,它时时刻刻指向这个个实例。
全栈程序员站长
2022/08/29
8580
【C++】自引用this指针的秘密
C语言 | 指针引用数组
指针变量既可以指向变量,也可以指向数组元素,所谓数组元素的指针就是数组元素的地址。
小林C语言
2021/04/22
1.9K0
C语言 | 指针引用数组
C++中指针和引用的区别
指针和引用主要有以下区别: 引用必须被初始化,但是不分配存储空间。指针不声明时初始化,在初始化的时候需要分配存储空间。 引用初始化后不能被改变,指针可以改变所指的对象。 不存在指向空值的引用,但是存在指向空值的指针。 注意:引用作为函数参数时,会引发一定的问题,因为让引用作参数,目的就是想改变这个引用所指向地址的内容,而函数调用时传入的是实参,看不出函数的参数是正常变量,还是引用,因此可能引发错误。所以使用时一定要小心谨慎。 从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改
猿人谷
2018/01/17
5.1K0
C++: 21---引用和指针
一般说到谁和谁怎么样,要么说两者的相似点,要么两者的区别,这里我们也要说二者的区别和联系,同时,也不仅仅是区别和联系这么简单,因为你可能会发现在变量赋值,函数传参这两点还是有很多值得品一品的。
用户3479834
2021/02/03
8200
C++:   21---引用和指针
C++中指针与引用详解
在计算机存储数据时必须要知道三个基本要素:信息存储在何处?存储的值为多少?存储的值是什么类型?因此指针是表示信息在内存中存储地址的一类特殊变量,指针和其所指向的变量就像是一个硬币的两面。指针一直都是学习C语言的难点,在C++中又多了一个引用的概念。初学时很容易把这两个概念弄混,下面就来通过一些例子来说明二者之间的差别。
呆呆
2021/07/05
7380
C++指针和引用及区别
首先最重要的,variable的定义,当你申明一个变量的时候,计算机会将指定的一块内存空间和变量名进行绑定;这个定义很简单,但其实很抽象,例如:int x = 5; 这是一句最简单的变量赋值语句了, 将5赋值于名字叫做x的内存空间,其本质是将值5赋值到一块内存空间,而这个内存空间名叫做x。
WindSun
2019/08/29
7980
C++指针和引用及区别
【C++】C++ 引用详解 ② ( 引用的意义 | 引用本质分析 | 引用的常量特征 | 引用所占内存空间与指针相同 | 引用在 C++ 编译器实现 | 引用编译时会自动翻译为常量指针 )
引用 与 指针示例 : 下面的两个函数 , 分别使用 指针 和 引用 作为参数 ,
韩曙亮
2023/10/15
4130
【C++】C++ 引用详解 ② ( 引用的意义 | 引用本质分析 | 引用的常量特征 | 引用所占内存空间与指针相同 | 引用在 C++ 编译器实现 | 引用编译时会自动翻译为常量指针 )
指针的引用
有这么一个场景:程序中某一模块在对数据进行处理,另一个模块想要将其处理的数据写入文件,这时候有两种方案,一个是通过接口将数据拷贝出来,好处是写数据到文件不影响处理数据,缺点是占用内存较大;一个是将数据的地址传递出来,这样写入文件的时候不能对数据进行处理,好处是节省内存,不用重复的分配和释放内存。
零式的天空
2022/03/25
2980
8.3 C语言通过指针引用数组
1、指针变量既可以指向变量,也可以指向数组元素。所谓数组元素的指针就是数组元素的地址。
小林C语言
2020/12/07
1.6K0
8.3 C语言通过指针引用数组
【C++】C++ 引用详解 ④ ( 函数返回 静态变量 / 全局变量 的 引用 / 指针 )
上一篇博客 【C++】C++ 引用详解 ③ ( 函数返回值不能是 “ 局部变量 “ 的引用或指针 | 函数内的 “ 局部变量 “ 的引用或指针做函数返回值无意义 ) 得出如下结论 :
韩曙亮
2023/10/15
2810
【C++】C++ 引用详解 ④ ( 函数返回 静态变量 / 全局变量 的 引用 / 指针 )
对比 C++ 和 Python,谈谈指针与引用
指针(Pointer)是 C、C++ 以及 Java、Go 等语言的一个非常核心且重要的概念,而引用(Reference)是在指针的基础上构建出的一个同样重要的概念。
magic2728
2019/09/27
9270
对比 C++ 和 Python,谈谈指针与引用
C++引用、指针实现交换两个数
cout<<"Before swap: a="<<a<<" b="<<b<<endl;
用户7886150
2021/02/08
7410

相似问题

放大visual studio窗体设计器

11

Visual Studio Windows窗体设计器错误

149

Visual Studio加载设计窗体

10

visual studio窗体设计器:创建新窗体时出错

23

Visual Studio 2010 Windows窗体设计器问题

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文