将图像粘贴到工作表单元格时出错

本文关键字:表单 单元格 出错 工作 图像 | 更新日期: 2023-09-27 18:01:05

我正在使用emguCV开发人脸识别程序。

现在,我正在编写一个程序,将测试结果写在excel工作表中。

以下是我用来粘贴测试结果的代码:

Image a = imageBoxTesting.Image.Bitmap;                    
Image b = imageBoxTraining.Image.Bitmap;
                Clipboard.SetImage(a);
                cellRngImg = (Range)ws.Cells[rowCount, 1];
                ws.Paste(cellRngImg, a);
                ws.Cells[2][rowCount] = testingLabel;
                Clipboard.SetImage(b);
                cellRngImg2 = (Range)ws.Cells[rowCount, 3];
                ws.Paste(cellRngImg2, b);
                Clipboard.Clear();
                cellRngImg.Clear();
                cellRngImg2.Clear();
                ws.Cells[4][rowCount] = predictionLabel;
                ws.Cells[5][rowCount] = ed;
                ws.Cells[6][rowCount] = valid;
                ws.Cells[7][rowCount] = maxDistance;
rowCount++;

上面的代码被放入一个循环中,直到所有可用的测试图像都被测试为止。

错误似乎发生在以下任一行:

ws.Paste(cellRngImg, a);
ws.Paste(cellRngImg2, b);

而且错误是随机发生的,从来不会在相同的迭代中发生。在一次运行中,它可能发生在第3次迭代,在另一次运行时,它可能出现在第17次迭代。

我试过以管理员身份运行VS,但它似乎不会影响任何事情。

请帮忙!非常感谢。

编辑错误消息:类型为"System"的未处理异常。运行时。InteropServices。在Eigenface.exe中出现COMException附加信息:HRESULT异常:0x800A03EC

将图像粘贴到工作表单元格时出错

我遇到了同样的问题,我已经设法解决了它。

粘贴操作中似乎有一些锁定,可能需要时间才能释放。

我创建了以下代码重试,解决了我的问题:

Clipboard.SetDataObject(picture, false);
bool pasteResult = false;
while (pasteResult == false)
{
    try
    {
        excelSheet.Paste(cellRngImg, picture);
        pasteResult = true;
    }
    catch
    {
        System.Threading.Thread.Sleep(100);
    }
}
Clipboard.Clear();