Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >同一行上的Excel单元格报告不同的顶部位置

同一行上的Excel单元格报告不同的顶部位置
EN

Stack Overflow用户
提问于 2011-12-19 06:40:35
回答 1查看 387关注 0票数 1

我正在用C#以编程方式构建一个Excel电子表格(joy!)我在Range.Top属性中看到了奇怪的行为。

我正在构建一个网络图(请不要问我为什么要使用Excel,但要知道这不是我的决定,它不能改变)如此多的单元格(节点)是由使用Worksheet.Shapes.addLine(...)绘制的直线(圆弧)连接的。不幸的是,我的许多弧不能很好地与我的节点连接起来。

每次我向图中添加一个节点(通过用节点ID填充单元格的值)时,我都会查询它的位置,以便我可以计算它的中心并将其用作线锚点。

在我调试时看到的一个示例中,我添加了两个节点,一个在单元C3上,两个在E3上。对于每个单元格,Range.Top属性会给出一个不同的数字!

代码语言:javascript
运行
AI代码解释
复制
Range cell = ws.Cells[3, 3];    // y (rows) before x (cols)
node.renderSmallerX = Convert.ToDouble(cell.Left);  // e.g. 100
node.renderSmallerY = Convert.ToDouble(cell.Top);   // e.g. 100
node.renderLargerX = node.renderSmallerX + Convert.ToDouble(cell.Width);    // e.g. 130
node.renderLargerY = node.renderSmallerY + Convert.ToDouble(cell.Height);   // e.g. 115

// ... (next loop)

Range cell = ws.Cells[3, 5];
node.renderSmallerX = Convert.ToDouble(cell.Left);  // e.g. 100
node.renderSmallerY = Convert.ToDouble(cell.Top);   // e.g. 114.25
node.renderLargerX = node.renderSmallerX + Convert.ToDouble(cell.Width);    // e.g. 130
node.renderLargerY = node.renderSmallerY + Convert.ToDouble(cell.Height);   // e.g. 129.25

我已经阅读了the manual,度量位于行的顶部,并且与其内容没有任何关系,因此我认为没有理由在这里更改该属性。

我对这个问题非常恼火,现在我将首先迭代所有需要的列和行来创建坐标字典,而不是在使用时查询单元格的位置,这样至少即使它们是错的,它们也都是以同样的方式出错的。

有没有Excel专家可以解释这个非常奇怪的结果,或者告诉我问题出在哪里?非常感谢。

编辑:应该提到- .NET v4,Microsoft.Office.Interop.Excel v11

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-19 10:47:25

我试图在Excel2003中模拟您的问题,方法是在不同的单元格上按键运行以下代码

代码语言:javascript
运行
AI代码解释
复制
Sub GetCoord()
Dim R1 As Range, R2 As Range

    Set R1 = Selection
    Set R2 = Selection.Cells(1, 1)

    MsgBox "T/L/W/H:" & vbCrLf & _
           R1.Top & "/" & R1.Left & "/" & R1.Width & "/" & R1.Height & vbCrLf & _
           R2.Top & "/" & R2.Left & "/" & R2.Width & "/" & R2.Height

End Sub

我没有发现同一行中的单元格的.Top是不同的,尽管我在不同线条粗细的范围内试验了.VerticalAlignment和be。

随着至少一个电池上的不同线条厚度,.Top会发生变化-但对两个电池来说是同步的。对于两个单元格,如果线条粗细不同,则两个.Top都使用较粗的线条。

在我的MsgBox中,可以看到R1和R2在合并单元格中的另一个不同之处:R1.Height报告总高度,而R2.Height只报告第一个单元格的高度。

这不是一个答案,但可能会启发你下一步该往哪里看。

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

https://stackoverflow.com/questions/8557945

复制
相关文章
java准确的获取操作系统的名称
在我们日常开发中,经常需要判断操作系统的版本或者系统的名字等等。这就需要我们用到jdk默认带的一些属性了。这里我对各个版本的系统都做了区分,分别能判断mac,linux,window等大众的操作系统名称。直接看代码(OSUtil.java):
业余草
2019/01/21
4.3K0
java准确的获取操作系统的名称
JavaScript获取每个月的天数
每一年里,只有2月是不固定的。1、3、5、7、8、10、12是31天,4、6、8、11是30天写死,2月判断润平年。能被4整除且不能整除100的为闰年或者能够被 400 整除的就是闰年。
肥晨
2023/02/17
1.2K0
[答疑]对于Oracle来说,土地管理是非核心域吗
您在课上说,对于土地管理系统来说oracle,arcgis,java是非核心域,因为它们可有可无。我想请教对于oracle来说,土地管理好像也是可有可无,那么土地管理是非核心域吗
用户6288414
2022/03/01
2660
[答疑]对于Oracle来说,土地管理是非核心域吗
根据 PID 获取容器所在的 Pod 名称
在管理 Kubernetes 集群的过程中,我们经常会遇到这样一种情况:在某台节点上发现某个进程资源占用量很高,却又不知道是哪个容器里的进程。有没有办法可以根据 PID 快速找到 Pod 名称呢?
米开朗基杨
2020/07/17
6.9K0
【python高级编程】namedtuple用法--给元组中的每个元素命名
给每个元组中的元素命名,我们就可以使用名字去访问对应元素,相对于索引访问,这样可以大大提高程序的可读性。
用户7886150
2020/12/24
2.9K0
获取GridView中的某列值
    protected void GridView1_RowEditing(object sen
Java架构师必看
2021/03/22
10.5K0
按照A列进行分组并计算出B列每个分组的平均值,然后对B列内的每个元素减去分组平均值
前几天在Python星耀交流群有个叫【在下不才】的粉丝问了一个Pandas的问题,按照A列进行分组并计算出B列每个分组的平均值,然后对B列内的每个元素减去分组平均值,这里拿出来给大家分享下,一起学习。
前端皮皮
2022/08/17
3K0
按照A列进行分组并计算出B列每个分组的平均值,然后对B列内的每个元素减去分组平均值
Python3列表和元组
数据结构是以某种方式组合起来的数据元素的集合。在Python中基本的数据结构就是序列
py3study
2020/01/13
1.4K0
根据 PID 获取 K8S Pod名称 - 反之 POD名称 获取 PID
随着 Kubernetes 越来越火爆,运维人员排查问题难度越来越大。比如我们收到监控报警,某台 Kubernetes Node 节点负载高。通过 top 或者 pidstat 命令获取 Pid,问题来了,这个 Pid 对应那个 Kubernetes Pod 呢?
YP小站
2020/07/21
3.4K0
Phoenix Framework对于Tree该方法节点设置不同的图标,每个[通俗易懂]
在包Javax Swing的Tree对象。我们需要设置不同的图标为每个节点。它封装了一个通用的方法:
全栈程序员站长
2022/07/06
3280
Phoenix Framework对于Tree该方法节点设置不同的图标,每个[通俗易懂]
js获取元素相对于document的坐标
代码如下: const getOffset = el => { const { left, top } = el.getBoundingClientRect() const { scrollTop, scrollLeft } = document.body return { top: top + scrollTop, left: left + scrollLeft } } 使用: <!DOCTYPE html> <html lang="en"> <head> <meta
阿超
2023/02/20
7K0
js获取元素相对于document的坐标
Excel公式技巧93:查找某行中第一个非零值所在的列标题
有时候,一行数据中前面的数据值都是0,从某列开始就是大于0的数值,我们需要知道首先出现大于0的数值所在的单元格。例如下图1所示,每行数据中非零值出现的位置不同,我们想知道非零值出现的单元格对应的列标题,即第3行中的数据值。
fanjy
2021/07/12
10K0
Excel公式技巧93:查找某行中第一个非零值所在的列标题
Android开发:获取手机当前连接的WiFi名称
点击进入WIFI_SERVICE,看到的是系统的WiFi名称是加的有双引号的,具体如下所示:
三掌柜
2021/12/27
4.4K0
根据/proc/partitions获取插入的U盘设备名称
1 在/proc/partitions中存放着U盘的设备名称,如sda,sdb2等,以sd开头。
全栈程序员站长
2022/09/13
1.2K0
Python获取网卡信息(名称、MAC、
    “人生苦短,我用Python”。Python的高效有一部分是跟它丰富的模块分不开的。Python有很多第三方模块可以帮助我们完成一些事情,减少开发时间。
py3study
2020/01/03
4.7K0
Python获取网卡信息(名称、MAC、
C/C++获取枚举值名称
jasong
2025/03/26
730
【说站】python元组有哪些获取元素的方法
以上就是python元组获取元素的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/23
9740
常用行或者列的对应解释与名称与ASCII码整理
常用行或者列的对应解释与名称与ASCII码整理
学到老
2018/03/19
1.1K0
常用行或者列的对应解释与名称与ASCII码整理
[答疑]针对需求分包的情况,是否要为每个分包寻找出它的组织
潘老师,请教一下,业务建模过程中,针对需求分包的情况,是否要为每个分包寻找出它的组织?以及找到这个组织要解决的问题? fochaillee (747**11) 2012-08-28 16:31:05 如果系统要解决的问题的组织是一个公司,老大的愿景是比较宏观的,但要达到老大的愿景,还是需要各个组织(内部机构)的协调才能达到的,这样就有需要解决各个组织的问题; 不知道理解的对不对? 大家可以一起讨论一下 潘加宇 (3504847) 2012-08-28 16:34:56 需求应该从业务建模导出,既然"要达到老大的愿景,还是需要各个组织(内部机构)的协调",就把整个的组织作为研究对象。 这和"需求分包"无关。 潘加宇 (3504847) 2012-08-28 16:35:06 你可以把问题提得再具体一点 李旗风 (287**8589) 2012-08-28 16:37:58 老大的愿景比较宏观,就需要细化或者具体化 李旗风 (287**8589) 2012-08-28 16:39:38 一些思路: 1、从相关涉众入手,找出它们的关注点,然后来提取,这是自底向上 2、分享老大的一些外部刺激源:考察、竞争对手等等,然后寻找方案 fochaillee (747**11) 2012-08-28 16:42:26 如: 老大的愿景,就是通过上"项目管理系统",项目成本,年均节约成本20%;计划偏差率,缩小15%;项目风险汇报,小于3天…… fochaillee (747**11) 2012-08-28 16:43:13 那为了达成上面的愿景: 可能涉及到成本部(机构A); 项目管理部(机构B); 项目X(机构C); …… fochaillee (747**11) 2012-08-28 16:44:00 每一个部门各自内部的相关问题解决,才可能达到老大的愿景 fochaillee (747**11) 2012-08-28 16:45:10 所以不知道是否应该为每一个部门,进行业务建模,还是要针对整个企业? 不知道我描述的是否清晰了 张红文 (103**65631) 2012-08-28 16:47:50 只为一个企业进行业务建模,其他机构相关人员是"业务工作者" 潘加宇 (3504847) 2012-08-28 16:47:53 (1)针对整个企业即可,挑关键的流程先画,如果觉得许多流程中的步骤与愿景无关,可以再缩小范围 (2愿景需要再斟酌。项目成本,"年均节约成本20%"和"计划偏差率,缩小15%;项目风险汇报,小于3天……"可能不是一个级别 fochaillee (747**11) 2012-08-28 16:49:08 我上面只是举个类似的例子 潘加宇 (3504847) 2012-08-28 16:49:25 你可以画一个图,为什么成本高,找出若干原因,有可能再对原因找出原因的若干原因,一直到系统能承诺的目标 fochaillee (747**11) 2012-08-28 16:50:51 这个用什么UML图来表示比较好呢?有没有好的建议? 我不可能画草图吧? 潘加宇 (3504847) 2012-08-28 16:51:46 鱼骨图。可用类图代替。
用户6288414
2021/04/22
4060
类模块应用示例:获取单击的命令按钮名称
这个示例来源于ozgrid.com,有兴趣的朋友可以研究。在用户窗体上共有24个命令按钮,如下图1所示。
fanjy
2023/10/04
3460
类模块应用示例:获取单击的命令按钮名称

相似问题

Vim可视化模式脚本:搜索围绕可视选择的文本

22

在vim中,如何可视化地选择先前粘贴的文本

34

Vim -可视化选择正则表达式匹配的命令?

31

VIM: vim.command('y')按预期工作,但vim.command('gv')启动图形用户界面而不是可视化选择

22

在VIM中可视化地选择和中断多行,直到文本宽度

122
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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