用Excel文件中的图像复制单元格范围

摩根·罗斯

我正在使用GemBox.Spreadsheet将单元格从一个Excel工作表复制到另一个工作表中单元格来自特定的命名范围,我正在使用如下CellRange.CopyTo方法:

ExcelFile book = ExcelFile.Load("sv-data.xlsx");
ExcelWorksheet sheet1 = book.Worksheets[0];
CellRange range1 = sheet1.NamedRanges["SV"].Range;
ExcelWorksheet sheet2 = book.Worksheets.Add("Sheet2");
range1.CopyTo(sheet2, 14, 3);

这适用于所有单元格的值和格式,但是不会在图像上复制。

这是预期的行为吗?如何复制数据和图像?

马里奥Z

是的,这似乎是有意的,因为图像不是存储在单元格中,而是存储在工作表中。它们是单独的集合的一部分ExcelWorksheet.Pictures

因此,也许您可​​以遍历该集合并复制所需的元素。

例如,如下所示:

ExcelFile book = ExcelFile.Load("sv-data.xlsx");
ExcelWorksheet sheet1 = book.Worksheets[0];
CellRange range1 = sheet1.NamedRanges["SV"].Range;

ExcelWorksheet sheet2 = book.Worksheets.Add("Sheet2");

int row2 = 14;
int column2 = 3;
range1.CopyTo(sheet2, row2, column2);

int rowOffset = row2 - range1.FirstRowIndex;
int columnOffset = column2 - range1.FirstColumnIndex;

foreach (ExcelPicture picture1 in sheet1.Pictures)
{
    ExcelDrawingPosition position1 = picture1.Position;
    CellRange pictureRange1 = sheet1.Cells.GetSubrangeAbsolute(position1.From.Row.Index, position1.From.Column.Index, position1.To.Row.Index, position1.To.Column.Index);

    if (range1.Overlaps(pictureRange1))
    {
        ExcelPicture picture2 = sheet2.Pictures.AddCopy(picture1);
        ExcelDrawingPosition position2 = picture2.Position;

        position2.From.Row = sheet2.Rows[position2.From.Row.Index + rowOffset];
        position2.To.Row = sheet2.Rows[position2.To.Row.Index + rowOffset];
        position2.From.Column = sheet2.Columns[position2.From.Column.Index + columnOffset];
        position2.To.Column = sheet2.Columns[position2.To.Column.Index + columnOffset];
    }
}

book.Save("output.xlsx");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从多个Excel文件复制单元格并将其粘贴到主文件中

来自分类Dev

通过VBA在Excel中复制单元格公式

来自分类Dev

Excel 2016复制单元格的范围-范围由另一张纸上的单元格结果确定

来自分类Dev

包含文本的特定文本复制单元格的excel搜索范围

来自分类Dev

包含文本的特定文本复制单元格的excel搜索范围

来自分类Dev

从关闭的工作簿动态复制单元格范围?

来自分类Dev

Excel公式或VBA复制单元格删除空格?

来自分类Dev

Excel VBA:复制单元格内容

来自分类Dev

Excel表查找和复制单元格值

来自分类Dev

Microsoft Excel,复制单元格的格式

来自分类Dev

Excel:仅当单元格在其他列中匹配时才可以复制单元格吗?

来自分类Dev

从多个文件复制单元格J1并粘贴到主文件的列中

来自分类Dev

如何在Excel中仅复制单元格的纯文本?

来自分类Dev

如何在Excel中仅复制单元格的文本值

来自分类Dev

根据样式在Excel中复制不同范围的单元格

来自分类Dev

查找并复制单元格中的某些值

来自分类Dev

Excel VBA复制单元格值,如果> 0到左侧的单元格

来自分类Dev

Excel VBA-搜索范围-如果单元格包含文本,则复制单元格-粘贴偏移量2,1

来自分类Dev

循环和复制单元格

来自分类Dev

Excel:在公式中复制单元格格式

来自分类Dev

如果单元格与列名匹配,则在一行中复制单元格

来自分类Dev

遍历列范围,检查是否存在多个值然后复制单元格所需的代码

来自分类Dev

复制单元格值时,对象_Worksheet的方法范围失败

来自分类Dev

如何仅通过选择单个单元格来复制单个行的范围?

来自分类Dev

复制单元格范围,包括边框格式x次数

来自分类Dev

遍历列范围,检查值是否存在然后复制单元格所需的代码

来自分类Dev

使用Spreadsheett :: ParseXLSX从.xlsx文件复制单元格格式,以使用EXCEL:WRITER :: XLSX写入另一个单元格?

来自分类Dev

VBA Excel中的单元格范围

来自分类Dev

仅当当前单元格为空白时,才从上方Excel复制单元格值

Related 相关文章

  1. 1

    从多个Excel文件复制单元格并将其粘贴到主文件中

  2. 2

    通过VBA在Excel中复制单元格公式

  3. 3

    Excel 2016复制单元格的范围-范围由另一张纸上的单元格结果确定

  4. 4

    包含文本的特定文本复制单元格的excel搜索范围

  5. 5

    包含文本的特定文本复制单元格的excel搜索范围

  6. 6

    从关闭的工作簿动态复制单元格范围?

  7. 7

    Excel公式或VBA复制单元格删除空格?

  8. 8

    Excel VBA:复制单元格内容

  9. 9

    Excel表查找和复制单元格值

  10. 10

    Microsoft Excel,复制单元格的格式

  11. 11

    Excel:仅当单元格在其他列中匹配时才可以复制单元格吗?

  12. 12

    从多个文件复制单元格J1并粘贴到主文件的列中

  13. 13

    如何在Excel中仅复制单元格的纯文本?

  14. 14

    如何在Excel中仅复制单元格的文本值

  15. 15

    根据样式在Excel中复制不同范围的单元格

  16. 16

    查找并复制单元格中的某些值

  17. 17

    Excel VBA复制单元格值,如果> 0到左侧的单元格

  18. 18

    Excel VBA-搜索范围-如果单元格包含文本,则复制单元格-粘贴偏移量2,1

  19. 19

    循环和复制单元格

  20. 20

    Excel:在公式中复制单元格格式

  21. 21

    如果单元格与列名匹配,则在一行中复制单元格

  22. 22

    遍历列范围,检查是否存在多个值然后复制单元格所需的代码

  23. 23

    复制单元格值时,对象_Worksheet的方法范围失败

  24. 24

    如何仅通过选择单个单元格来复制单个行的范围?

  25. 25

    复制单元格范围,包括边框格式x次数

  26. 26

    遍历列范围,检查值是否存在然后复制单元格所需的代码

  27. 27

    使用Spreadsheett :: ParseXLSX从.xlsx文件复制单元格格式,以使用EXCEL:WRITER :: XLSX写入另一个单元格?

  28. 28

    VBA Excel中的单元格范围

  29. 29

    仅当当前单元格为空白时,才从上方Excel复制单元格值

热门标签

归档