.NetCore 使用 NPOI 读取带有图片的excel数据

在.NetCore使用NPOI插件进行批量导入时,获取Excel中的所有的图片数据,存到集合中。

1.定义类PictureData

代码如下:

public class PictureData

{

public byte\[\] Data { get; set; }

}

2.数据集引用

using NPOI.XSSF.UserModel;

using NPOI.SS.UserModel;

using NPOI.XSSF.UserModel.Extensions;

npoi插件可以通过nuget安装或自己下载引用。

3.定义获取excel图片数据的方法GetDTWithImg

/// <summary>

/// 获取excel中图片数据

/// </summary>

/// <param name="path">文件路径</param>

/// <returns>list</returns>

private List<PictureData> GetDTWithImg(string path)

{

using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read))

{

IWorkbook workbook = null;

ISheet sheet = null;

workbook = WorkbookFactory.Create(file);

sheet = workbook.GetSheet("Sheet1");

if (sheet == null)

{

sheet = workbook.GetSheetAt(0);

}

// 获取绘图对象

XSSFDrawing drawing = (XSSFDrawing)sheet.CreateDrawingPatriarch();

List<XSSFPicture> picturesInColumnA = new List<XSSFPicture>();

List<XSSFShape> shapes = drawing.GetShapes();

foreach (XSSFShape shape in shapes)

{

if (shape is XSSFPicture)

{

XSSFPicture picture = (XSSFPicture)shape;

XSSFClientAnchor anchor = (XSSFClientAnchor)picture.GetPreferredSize();

picturesInColumnA.Add(picture);

}

}

List<PictureData> pictureDataList = new List<PictureData>();

//将图片数据放到集合中

foreach (XSSFPicture picture in picturesInColumnA)

{

byte\[\] pictureData = picture.PictureData.Data;

PictureData data = new PictureData

{

Data = pictureData

};

pictureDataList.Add(data);

}

return pictureDataList;

}

}

通过该方法可以获取excel中的图片,将其转换成字节流存到集合中,方便后续对其进行操作。

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

相关推荐
啊这啊这 六弦之首9 小时前
.NET Core跨平台的奥秘[中篇]:复用之殇
.netcore
ms365copilot9 小时前
Excel 新模型Claude Opus 5
人工智能·excel
CodexDave11 小时前
Python 自动化接单实战(二):Excel 批量清洗如何把规则与异常分开
python·自动化·excel·python自动化·数据处理·excel清洗·异常报告
蓝创工坊Blue Foundry12 小时前
发票、凭证和对账单怎么整理成 Excel?先定义字段,再逐项复核
pdf·ocr·excel·文心一言·paddlepaddle
ms365copilot13 小时前
Copilot直接读取Excel,一键生成完整数据汇报PPT
powerpoint·excel·copilot
心念枕惊1 天前
.NET CORE 授权进阶-角色、策略与动态权限实现
java·前端·.netcore
石马马户1 天前
excel中使用宏绘制折线图
excel
tedcloud1231 天前
Orca 部署指南:开源 AI 推理服务的 Linux 部署实践
linux·运维·服务器·人工智能·开源·自动化·excel
星雨流星天的笔记本2 天前
0.0用excel拆分数据
excel
蓝创工坊Blue Foundry2 天前
PaddleOCR 本地部署教程:小模型 OCR 如何完成字段提取到 Excel
pdf·自动化·ocr·excel·paddlepaddle·paddle