将图像粘贴到工作表单元格时出错
本文关键字:表单 单元格 出错 工作 图像 | 更新日期: 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();