如何用npoi读取word里表格内的图片
时间: 2023-08-12 21:09:06 浏览: 172
基于poi导出word以及图片
您好,要使用 NPOI 读取 Word 文档中表格内的图片,可以参考以下步骤:
1. 使用 NPOI 打开 Word 文档,获取文档中所有的表格:
```
using (var fs = new FileStream("example.docx", FileMode.Open, FileAccess.ReadWrite))
{
var doc = new XWPFDocument(fs);
foreach (var table in doc.Tables)
{
// 处理每个表格
}
}
```
2. 对于每个表格,遍历其中的所有行和单元格,获取单元格中的所有图片:
```
foreach (var row in table.Rows)
{
foreach (var cell in row.GetTableCells())
{
foreach (var paragraph in cell.Paragraphs)
{
foreach (var run in paragraph.Runs)
{
foreach (var pic in run.GetEmbeddedPictures())
{
// 处理每个图片
}
}
}
}
}
```
3. 对于每个图片,可以使用 `pic.GetPictureData()` 方法获取图片的二进制数据,并保存到本地文件中:
```
var pictureData = pic.GetPictureData();
var extension = pic.SuggestFileExtension();
var fileName = $"{Guid.NewGuid()}.{extension}";
using (var fs = new FileStream(fileName, FileMode.CreateNew, FileAccess.Write))
{
fs.Write(pictureData.Data, 0, pictureData.Data.Length);
}
```
这样就可以读取 Word 文档中表格内的图片了。注意,表格中的图片可能会占用较大的空间,需要适当控制读取的图片数量和图片大小,以免导致内存溢出等问题。
阅读全文