【问题标题】:Insert Excel row with normal height插入具有正常高度的 Excel 行
【发布时间】:2014-12-23 00:02:26
【问题描述】:

这是我将行插入 Excel 工作表的 C# 代码:

for (var j = 0; j < dummies.Count; j++)
{
    mySheet.Range[myRange].Insert(Excel.XlInsertShiftDirection.xlShiftDown);
}

那里没有什么惊天动地的。

但是,如果插入下方的某一行与其他行的高度不同,则该位置的新行似乎会保持相同的高度,向下移动的行也是如此。

例如,在代码运行之前,所有行都是正常高度,除了 11 是其他行高度的两倍。

如果我在第 7 行插入 10 行,结果是第 11 行和第 21 行是双倍高度。

在上方插入 1 行会使 11 和 12 成为两倍高。

插入 2 行对第 11 行和第 13 行等产生相同的结果。

所以原来的双高行似乎总是保持它的高度,即使高度也跟随向下移动的行。

有没有办法可以指定当我插入一行时,行高不应该落后?

[编辑] 如果我手动插入一行,一切正常。 [/编辑]

【问题讨论】:

  • 你试过设置NamedRange.RowHeight变量吗?
  • 是的,我可以这样更正行高。不幸的是,我不一定知道每次都会影响哪些行。
  • 如何创建一个空白行并插入它而不是使用Excel.XlInsertShiftDirection.xlShiftDown
  • 我认为这就是.Insert 方法的作用。好的,谢谢,我将研究插入明确定义的行。
  • 我似乎找不到如何做到这一点。另外我认为它不会解决问题,因为插入的行不一定是错误的。

标签: c# excel excel-addins


【解决方案1】:

我知道这是为什么了。

在上面的代码中,我没有将整行向下移动。

这意味着没有向下移动的单元格保持其原始高度,这会影响该行中所有其他单元格的高度。

以下作品:

for (var j = 0; j < dummies.Count; j++)
{
    mySheet.Range[myRange].EntireRow.Insert(Excel.XlInsertShiftDirection.xlShiftDown);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多