我在 .NET 6 控制台应用程序中使用 Syncfusion XlsIO 将数据插入到工作表中,其中每行末尾都有一个图像。我正在关注官方文档here。
没有错误,但是当我在应用程序完成后打开文件文件时,我看到相同的图像被插入到每一行中。我已经完成了循环,我可以看到图像对象发生变化。以下是我正在使用的代码:
int row = 1;
foreach (DataRow dataRow in imgTable.Rows)
{
Console.WriteLine(dataRow.ToString());
string imagePath = $"./tempImages/{dataRow.ItemArray[1]}";
using (FileStream imageStream = new FileStream(imagePath, FileMode.Open, FileAccess.Read))
{
IPictureShape shape = alarmWorksheet.Pictures.AddPicture(row, 4, imageStream);
imgWorksheet.SetRowHeight(row, 288);
}
row++;
}
我也尝试过这个,因为图像类型存在过载。
int row = 1;
foreach (DataRow dataRow in imgTable.Rows)
{
alarmWorksheet.SetRowHeight(row, 216);
Console.WriteLine(dataRow.ToString());
string imagePath = $"./tempImages/{dataRow.ItemArray[1]}";
using (FileStream imageStream = new FileStream(imagePath, FileMode.Open, FileAccess.Read))
{
Image img = new Image(imageStream);
imgWorksheet.Pictures.AddPicture(row, 4, img);
}
row++;
}
我在升级一些旧代码时遇到了同样的问题。
我似乎需要将
Syncfusion.XlsIO.Net.Core
保持在或低于 20.0.4.54 版本似乎可以工作。我意识到这不是一个永久的解决方案,但也许您现在可以接受它。
我已将此作为错误报告给 Syncfusion,也许您也可以这样做。
[更新 1] 我刚刚收到 Syncfusion 支持人员的回复,他们正在查看我的报告并将很快更新。我想我会根据进展更新这个答案。
[更新2] Syncfusion 表示他们“在我们最新版本的 XlsIO 中修复了类似问题。我们要求您升级到最新的 NuGet 版本 23.1.40 并检查问题是否已解决。”我现在没有时间测试,但我很快就会测试。