C# NOPI IWorkbook GetAllPictures使用实例
时间: 2024-09-29 19:12:42 浏览: 44
C# 中的 NOPI (.NET Open XML Paper Specification) 是一个库,它允许开发者使用 .NET 语言操作 Office 文档,比如 Excel 的 .xlsx 文件。IWorkbook 是一个表示工作簿的对象,在 NOPI 中,`GetAllPictures()` 方法用于获取工作簿中的所有图片。
下面是一个简单的使用实例:
```csharp
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
// 加载Excel文件
using (var package = Package.Open("example.xlsx", FileMode.Open))
{
// 获取当前的工作簿
var workbook = package.WorkbookPart.Workbook;
// 创建一个图片集合
var pictures = new List<Stream>();
// 遍历所有的Sheets
foreach (var sheet in workbook.GetFirstChild<SheetData>().Elements<Sheet>())
{
// 在每个Sheet中查找图片
foreach (var drawing in sheet.Descendants<Drawing>())
{
var pictureData = drawing.Descendants<ImagePart>()
.FirstOrDefault(p => p.ContentType == "image/png" || p.ContentType == "image/jpeg");
if (pictureData != null)
{
pictures.Add(package.GetStreamFromPart(pictureData));
}
}
}
// 现在pictures变量里就包含了所有图片的流
foreach (Stream picture in pictures)
{
// 这里可以处理图片流,如保存到硬盘或显示等
}
}
阅读全文