C#如何用npoi读取word里表格内的图片并保存在本地
时间: 2023-08-13 20:03:20 浏览: 674
可以使用NPOI的XWPFDocument类来读取Word文档,并使用POI的XWPFTable类来获取表格信息。以下是读取表格内图片并保存在本地的示例代码:
```csharp
using System.IO;
using NPOI.OpenXmlFormats.Wordprocessing;
using NPOI.XWPF.UserModel;
// 读取Word文档
using (FileStream fs = new FileStream("test.docx", FileMode.Open, FileAccess.Read))
{
XWPFDocument doc = new XWPFDocument(fs);
// 遍历文档中的表格
foreach (XWPFTable table in doc.Tables)
{
// 遍历表格中的行
foreach (XWPFTableRow row in table.Rows)
{
// 遍历行中的单元格
foreach (XWPFTableCell cell in row.GetTableCells())
{
// 遍历单元格中的段落
foreach (XWPFParagraph para in cell.Paragraphs)
{
// 遍历段落中的Run
foreach (IRunElement run in para.IRuns)
{
// 判断Run是否为图片
if (run is XWPFDrawing)
{
XWPFDrawing drawing = (XWPFDrawing)run;
XWPFPicture picture = drawing.GetPicture();
if (picture != null)
{
// 获取图片的二进制数据
byte[] pictureData = picture.Data;
// 获取图片的扩展名
string ext = picture.PictureData.SuggestFileExtension();
// 保存图片到本地
using (FileStream picFs = new FileStream("picture." + ext, FileMode.Create, FileAccess.Write))
{
picFs.Write(pictureData, 0, pictureData.Length);
}
}
}
}
}
}
}
}
}
```
注意,以上代码仅适用于Word 2007及以上版本的docx格式文件。如果要读取早期版本的Word文档,需要使用其他的NPOI类库。
阅读全文