/// <summary> /// 获取范围内的所有图片 /// </summary> /// <param name="sheet"></param> /// <param name="workSpace"></param> /// <returns></returns> private static List <ColumnFile> GetAllPictureInfos(HSSFSheet sheet, WorkSpace workSpace) { //execl中的图片信息 List <ColumnFile> fileInfoList = new List <ColumnFile>(); //获取工作表中的 var shapeContainer = sheet.DrawingPatriarch as HSSFShapeContainer; if (null != shapeContainer) { //获取子集 var shapeList = shapeContainer.Children; foreach (var shape in shapeList) { if (shape is HSSFPicture) { //获取图片对象 var picture = (HSSFPicture)shape; var anchor = (HSSFClientAnchor)picture.Anchor; //判断位置是否在需要范围内 if (IsInternalOrIntersect(anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, workSpace)) { ColumnFile entity = new ColumnFile() { //图片所在开始行 MinRow = anchor.Row1, //图片所在结束行 MaxRow = anchor.Row2, // 图片所在开始列 MinCol = anchor.Col1, //图片所在结束列 MaxCol = anchor.Col2, //图片数据 FileBytes = picture.PictureData.Data, //文件名称 FileName = picture.FileName, //响应类型 MimeType = picture.PictureData.MimeType, //扩展名称 ExtensionName = picture.PictureData.SuggestFileExtension(), //图片索引 FileIndex = picture.PictureIndex }; fileInfoList.Add(entity); } } } } return(fileInfoList); }
/// <summary> /// 获取所有的图片信息 /// </summary> /// <param name="sheet"></param> /// <param name="workSpace"></param> /// <returns></returns> private static List <ColumnFile> GetAllPictureInfos(XSSFSheet sheet, WorkSpace workSpace) { List <ColumnFile> fileInfoList = new List <ColumnFile>(); var documentPartList = sheet.GetRelations(); foreach (var documentPart in documentPartList) { if (documentPart is XSSFDrawing) { var drawing = (XSSFDrawing)documentPart; var shapeList = drawing.GetShapes(); foreach (var shape in shapeList) { if (shape is XSSFPicture) { var picture = (XSSFPicture)shape; var anchor = picture.GetAnchor(); //var anchor = picture.GetPreferredSize(); int row1 = (int)anchor.GetType().GetProperty("Row1").GetValue(anchor); int row2; int col1 = (int)anchor.GetType().GetProperty("Col1").GetValue(anchor); int col2; try { row2 = (int)anchor.GetType().GetProperty("Row2").GetValue(anchor); col2 = (int)anchor.GetType().GetProperty("Col2").GetValue(anchor); } catch { row2 = row1; //给默认值 col2 = col1; //给默认值 } if (IsInternalOrIntersect(row1, row2, col1, col2, workSpace)) { ColumnFile entity = new ColumnFile() { //图片所在开始行 MinRow = row1, //图片所在结束行 MaxRow = row2, // 图片所在开始列 MinCol = col1, //图片所在结束列 MaxCol = col2, //图片数据 FileBytes = picture.PictureData.Data, //文件名称 //FileName = picture.FileName, //响应类型 MimeType = picture.PictureData.MimeType, //扩展名称 ExtensionName = picture.PictureData.SuggestFileExtension(), //图片索引 //FileIndex = picture.PictureIndex }; fileInfoList.Add(entity); } } } } } return(fileInfoList); }