Syncfusion XlsIO:尝试将文件夹中的图像列表插入到每一行中。显示相同的图像

问题描述 投票:0回答:1

我在 .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++;
}
excel console-application .net-6.0 syncfusion
1个回答
1
投票

我在升级一些旧代码时遇到了同样的问题。

我似乎需要将

Syncfusion.XlsIO.Net.Core
保持在或低于 20.0.4.54 版本似乎可以工作。我意识到这不是一个永久的解决方案,但也许您现在可以接受它。

我已将此作为错误报告给 Syncfusion,也许您也可以这样做。

[更新 1] 我刚刚收到 Syncfusion 支持人员的回复,他们正在查看我的报告并将很快更新。我想我会根据进展更新这个答案。

[更新2] Syncfusion 表示他们“在我们最新版本的 XlsIO 中修复了类似问题。我们要求您升级到最新的 NuGet 版本 23.1.40 并检查问题是否已解决。”我现在没有时间测试,但我很快就会测试。

© www.soinside.com 2019 - 2024. All rights reserved.