/// <summary> /// 获取指定区域包含图片信息的列表 /// </summary> /// <param name="sheet">工作表</param> /// <param name="firstRow">起始行索引</param> /// <param name="lastRow">结束行索引</param> /// <param name="firstColumn">起始列索引</param> /// <param name="lastColumn">结束列索引</param> /// <param name="onlyInternal">是否内部区域</param> /// <returns></returns> private static List <PictureInfo> GetAllPictureInfos(HSSFSheet sheet, int?firstRow, int?lastRow, int?firstColumn, int?lastColumn, bool onlyInternal) { var pictures = new List <PictureInfo>(); if (sheet.DrawingPatriarch is HSSFShapeContainer shapeContainer) { IList <HSSFShape> shapes = shapeContainer.Children; foreach (var shape in shapes) { if (shape is HSSFPicture picture && picture.Anchor is HSSFClientAnchor anchor) { if (IsInternalOrIntersect(firstRow, lastRow, firstColumn, lastColumn, anchor.Row1, anchor.Row2, anchor.Col1, anchor.Row2, onlyInternal)) { var pictureStyle = new PictureStyle() { AnchorDx1 = anchor.Dx1, AnchorDx2 = anchor.Dx2, AnchorDy1 = anchor.Dy1, AnchorDy2 = anchor.Dy2, IsNoFill = picture.IsNoFill, LineStyleColor = picture.LineStyleColor, LineWidth = picture.LineWidth, FillColor = picture.FillColor, }; pictures.Add(new PictureInfo(anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, picture.PictureData.Data, pictureStyle)); } } } } return(pictures); }
public PictureInfo(int minRow, int maxRow, int minCol, int maxCol, Byte[] pictureData, PictureStyle pictureStyle) { this.MinRow = minRow; this.MaxRow = maxRow; this.MinCol = minCol; this.MaxCol = maxCol; this.PictureData = pictureData; this.PicturesStyle = pictureStyle; }
/// <summary> /// 初始化一个<see cref="PictureInfo"/>类型的实例 /// </summary> /// <param name="firstRow">起始行</param> /// <param name="lastRow">结束行</param> /// <param name="firstColumn">起始列</param> /// <param name="lastColumn">结束列</param> /// <param name="data">图片数据</param> /// <param name="style">图片样式</param> public PictureInfo(int firstRow, int lastRow, int firstColumn, int lastColumn, byte[] data, PictureStyle style) { FirstRow = firstRow; LastRow = lastRow; FirstColumn = firstColumn; LastColumn = lastColumn; Data = data; Style = style; }
/// <summary> /// 初始化一个<see cref="PictureInfo"/>类型的实例 /// </summary> /// <param name="minRow">最小行索引</param> /// <param name="maxRow">最大行索引</param> /// <param name="minCol">最小列索引</param> /// <param name="maxCol">最大列索引</param> /// <param name="pictureData">图片数据</param> /// <param name="pictureStyle">图片样式</param> public PictureInfo(int minRow, int maxRow, int minCol, int maxCol, byte[] pictureData, PictureStyle pictureStyle) { MinRow = minRow; MaxRow = maxRow; MinCol = minCol; MaxCol = maxCol; PictureData = pictureData; PictureStyle = pictureStyle; }
/// <summary> /// XSSFSheet获取指定区域包含图片的信息列表 /// </summary> /// <param name="sheet"></param> /// <param name="minRow"></param> /// <param name="maxRow"></param> /// <param name="minCol"></param> /// <param name="maxCol"></param> /// <param name="onlyInternal"></param> /// <returns></returns> private static List <PictureInfo> GetAllPictureInfos(XSSFSheet sheet, int?minRow, int?maxRow, int?minCol, int?maxCol, bool onlyInternal) { var picturesInfoList = new List <PictureInfo>(); List <POIXMLDocumentPart> documentPartList = sheet.GetRelations(); foreach (POIXMLDocumentPart documentPart in documentPartList) { if (documentPart is XSSFDrawing) { var drawing = (XSSFDrawing)documentPart; List <XSSFShape> shapeList = drawing.GetShapes(); foreach (XSSFShape shape in shapeList) { if (shape is XSSFPicture) { var picture = (XSSFPicture)shape; IClientAnchor anchor = picture.GetPreferredSize(); if (IsInternalOrIntersect(minRow, maxRow, minCol, maxCol, anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, onlyInternal)) { var picStyle = new PictureStyle { AnchorDx1 = anchor.Dx1, AnchorDx2 = anchor.Dx2, AnchorDy1 = anchor.Dy1, AnchorDy2 = anchor.Dy2, IsNoFill = picture.IsNoFill, LineStyle = picture.LineStyle, LineStyleColor = picture.LineStyleColor, LineWidth = picture.LineWidth, FillColor = picture.FillColor }; picturesInfoList.Add(new PictureInfo(anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, picture.PictureData.Data, picStyle)); } } } } } return(picturesInfoList); }
/// <summary> /// HSSFSheet获取指定区域包含图片的信息列表 /// </summary> /// <param name="sheet"></param> /// <param name="minRow"></param> /// <param name="maxRow"></param> /// <param name="minCol"></param> /// <param name="maxCol"></param> /// <param name="onlyInternal"></param> /// <returns></returns> private static List <PictureInfo> GetAllPictureInfos(HSSFSheet sheet, int?minRow, int?maxRow, int?minCol, int?maxCol, bool onlyInternal) { var picturesInfoList = new List <PictureInfo>(); var shapeContainer = sheet.DrawingPatriarch as HSSFShapeContainer; if (null != shapeContainer) { IList <HSSFShape> shapeList = shapeContainer.Children; foreach (HSSFShape shape in shapeList) { if (shape is HSSFPicture && shape.Anchor is HSSFClientAnchor) { var picture = (HSSFPicture)shape; var anchor = (HSSFClientAnchor)shape.Anchor; if (IsInternalOrIntersect(minRow, maxRow, minCol, maxCol, anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, onlyInternal)) { var picStyle = new PictureStyle { AnchorDx1 = anchor.Dx1, AnchorDx2 = anchor.Dx2, AnchorDy1 = anchor.Dy1, AnchorDy2 = anchor.Dy2, IsNoFill = picture.IsNoFill, LineStyle = picture.LineStyle, LineStyleColor = picture.LineStyleColor, LineWidth = picture.LineWidth, FillColor = picture.FillColor }; picturesInfoList.Add(new PictureInfo(anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, picture.PictureData.Data, picStyle)); } } } } return(picturesInfoList); }
/// <summary> /// 获取指定区域包含图片信息的列表 /// </summary> /// <param name="sheet">工作表</param> /// <param name="firstRow">起始行索引</param> /// <param name="lastRow">结束行索引</param> /// <param name="firstColumn">起始列索引</param> /// <param name="lastColumn">结束列索引</param> /// <param name="onlyInternal">是否内部区域</param> /// <returns></returns> private static List <PictureInfo> GetAllPictureInfos(XSSFSheet sheet, int?firstRow, int?lastRow, int?firstColumn, int?lastColumn, bool onlyInternal) { var pictures = new List <PictureInfo>(); var documentPartList = sheet.GetRelations(); foreach (var documentPart in documentPartList) { if (documentPart is XSSFDrawing drawing) { List <XSSFShape> shapes = drawing.GetShapes(); foreach (var shape in shapes) { if (shape is XSSFPicture picture) { IClientAnchor anchor = picture.GetPreferredSize(); if (IsInternalOrIntersect(firstRow, lastRow, firstColumn, lastColumn, anchor.Row1, anchor.Row2, anchor.Col1, anchor.Row2, onlyInternal)) { var pictureStyle = new PictureStyle() { AnchorDx1 = anchor.Dx1, AnchorDx2 = anchor.Dx2, AnchorDy1 = anchor.Dy1, AnchorDy2 = anchor.Dy2, IsNoFill = picture.IsNoFill, LineStyleColor = picture.LineStyleColor, LineWidth = picture.LineWidth, FillColor = picture.FillColor, }; pictures.Add(new PictureInfo(anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, picture.PictureData.Data, pictureStyle)); } } } } } return(pictures); }
/// <summary> /// 获取所有图片信息列表 /// </summary> /// <param name="sheet">工作表</param> /// <param name="minRow">最小行索引</param> /// <param name="maxRow">最大行索引</param> /// <param name="minCol">最小列索引</param> /// <param name="maxCol">最大列索引</param> /// <param name="onlyInternal">是否仅在内部</param> private static List <PictureInfo> GetAllPictureInfos(XSSFSheet sheet, int?minRow, int?maxRow, int?minCol, int?maxCol, bool onlyInternal) { var result = new List <PictureInfo>(); foreach (var documentPart in sheet.GetRelations()) { if (documentPart is XSSFDrawing drawing) { foreach (var shape in drawing.GetShapes()) { var picture = (XSSFPicture)shape; var anchor = picture.GetPreferredSize(); if (!IsInternalOrIntersect(minRow, maxRow, minCol, maxCol, anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, onlyInternal)) { continue; } var picStyle = new PictureStyle() { AnchorDx1 = anchor.Dx1, AnchorDx2 = anchor.Dx2, AnchorDy1 = anchor.Dy1, AnchorDy2 = anchor.Dy2, IsNoFill = picture.IsNoFill, //LineStyle = picture.LineStyle, LineStyleColor = picture.LineStyleColor, LineWidth = picture.LineWidth, FillColor = picture.FillColor, }; result.Add(new PictureInfo(anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, picture.PictureData.Data, picStyle)); } } } return(result); }
/// <summary> /// 获取所有图片信息列表 /// </summary> /// <param name="sheet">工作表</param> /// <param name="minRow">最小行索引</param> /// <param name="maxRow">最大行索引</param> /// <param name="minCol">最小列索引</param> /// <param name="maxCol">最大列索引</param> /// <param name="onlyInternal">是否仅在内部</param> private static List <PictureInfo> GetAllPictureInfos(HSSFSheet sheet, int?minRow, int?maxRow, int?minCol, int?maxCol, bool onlyInternal) { var result = new List <PictureInfo>(); if (sheet.DrawingPatriarch is HSSFShapeContainer shapeContainer) { foreach (var shape in shapeContainer.Children) { if (shape is HSSFPicture picture && picture.Anchor is HSSFClientAnchor anchor) { if (!IsInternalOrIntersect(minRow, maxRow, minCol, maxCol, anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, onlyInternal)) { continue; } var picStyle = new PictureStyle() { AnchorDx1 = anchor.Dx1, AnchorDx2 = anchor.Dx2, AnchorDy1 = anchor.Dy1, AnchorDy2 = anchor.Dy2, IsNoFill = picture.IsNoFill, //LineStyle = picture.LineStyle, LineStyleColor = picture.LineStyleColor, LineWidth = picture.LineWidth, FillColor = picture.FillColor, }; result.Add(new PictureInfo(anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, picture.PictureData.Data, picStyle)); } } } return(result); }
private static List<PictureInfo> GetAllPictureInfos(XSSFSheet sheet, int? minRow, int? maxRow, int? minCol, int? maxCol, bool onlyInternal) { List<PictureInfo> picturesInfoList = new List<PictureInfo>(); 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.GetPreferredSize(); if (IsInternalOrIntersect(minRow, maxRow, minCol, maxCol, anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, onlyInternal)) { var picStyle = new PictureStyle { AnchorDx1 = anchor.Dx1, AnchorDx2 = anchor.Dx2, AnchorDy1 = anchor.Dy1, AnchorDy2 = anchor.Dy2, IsNoFill = picture.IsNoFill, LineStyle = picture.LineStyle, LineStyleColor = picture.LineStyleColor, LineWidth = picture.LineWidth, FillColor = picture.FillColor }; picturesInfoList.Add(new PictureInfo(anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, picture.PictureData.Data, picStyle)); } } } } } return picturesInfoList; }
private static List<PictureInfo> GetAllPictureInfos(HSSFSheet sheet, int? minRow, int? maxRow, int? minCol, int? maxCol, bool onlyInternal) { List<PictureInfo> picturesInfoList = new List<PictureInfo>(); var shapeContainer = sheet.DrawingPatriarch as HSSFShapeContainer; if (null != shapeContainer) { var shapeList = shapeContainer.Children; foreach (var shape in shapeList) { if (shape is HSSFPicture && shape.Anchor is HSSFClientAnchor) { var picture = (HSSFPicture)shape; var anchor = (HSSFClientAnchor)shape.Anchor; if (IsInternalOrIntersect(minRow, maxRow, minCol, maxCol, anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, onlyInternal)) { var picStyle = new PictureStyle { AnchorDx1 = anchor.Dx1, AnchorDx2 = anchor.Dx2, AnchorDy1 = anchor.Dy1, AnchorDy2 = anchor.Dy2, IsNoFill = picture.IsNoFill, LineStyle = picture.LineStyle, LineStyleColor = picture.LineStyleColor, LineWidth = picture.LineWidth, FillColor = picture.FillColor }; picturesInfoList.Add(new PictureInfo(anchor.Row1, anchor.Row2, anchor.Col1, anchor.Col2, picture.PictureData.Data, picStyle)); } } } } return picturesInfoList; }