如何从excel文档的单元格中读取图片并存储到C#.net的Data表中?

时间:2018-02-20 08:30:41

标签: c# excel kingsoft

我有(金山词霸) Excel工作簿有15列,在第15列中有一张图片保存在单元格中。我正在阅读excel文件并创建一个与之相关的数据表。除了在数据表中存储图片外,所有工作都运行良好。 在第15列中可能存在各自具有不同图像的行数。

C#代码:

public static DataTable GetDataTableFromExcel(string path, bool hasHeader)
{
    using (var pck = new OfficeOpenXml.ExcelPackage())
    {
        using (var stream = File.OpenRead(path))
        {
            pck.Load(stream);
        }
        var ws = pck.Workbook.Worksheets.First();    

        DataTable tbl = new DataTable();
        foreach (var firstRowCell in ws.Cells[1, 1, 1, ws.Dimension.End.Column])
        {
            tbl.Columns.Add(hasHeader ? firstRowCell.Text : string.Format("Column {0}", firstRowCell.Start.Column));
        }
        var startRow = hasHeader ? 2 : 1;

        for (int rowNum = startRow; rowNum <= ws.Dimension.End.Row; rowNum++)
        {
           // Inserting Data from Excel to Datatable.
            var wsRow = ws.Cells[rowNum, 1, rowNum, 15];
            DataRow row = tbl.Rows.Add();
            foreach (var cell in wsRow)
            {
                row[cell.Start.Column - 1] = cell.Text;
            }

        }
        return tbl;
    }
}

注意:我正在使用金山电子表格。

我无法找到帮助从特定的excel细胞中读取图像。

如果有人可以,请提供帮助。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我认为你不是导入的命名空间

尝试导入以下命名空间

使用System.Drawing; 使用OfficeOpenXml.Drawing;