我找到了一些代码,可以使用SDK 2.0将图像添加到Excel工作表中。这部分工作正常。现在,我想在“图像”下放置一个“文本框”,但是我通常不知道如何获取一个“文本框”。
我需要哪些类,什么是属性或什么属性?
此外,如果它是groupt,那就太好了。这样,当您拖动一个时,另一个就会跟随。
代码看起来像这样(我知道很多,但是我不能再削减了):
private void addImage(Offset offset, Extents extents, string sImagePath, string description)
{
WorksheetPart worksheetPart = this.arbeitsBlatt.WorksheetPart;
DrawingsPart drawingsPart;
ImagePart imagePart;
XDrSp.WorksheetDrawing worksheetDrawing;
ImagePartType imagePartType = getImageType(sImagePath);
{
// --- use the existing DrawingPart
drawingsPart = worksheetPart.DrawingsPart;
imagePart = drawingsPart.AddImagePart(imagePartType);
drawingsPart.CreateRelationshipToPart(imagePart);
worksheetDrawing = drawingsPart.WorksheetDrawing;
}
using (FileStream fileStream = new FileStream(sImagePath, FileMode.Open))
{
imagePart.FeedData(fileStream);
}
int imageNumber = drawingsPart.ImageParts.Count<ImagePart>();
if (imageNumber == 1)
{
Drawing drawing = new Drawing();
drawing.Id = drawingsPart.GetIdOfPart(imagePart);
this.arbeitsBlatt.Append(drawing);
}
XDrSp.NonVisualDrawingProperties noVisualDrawingProps = new XDrSp.NonVisualDrawingProperties();
XDrSp.NonVisualPictureDrawingProperties noVisualPictureDrawingProps = new XDrSp.NonVisualPictureDrawingProperties();
noVisualDrawingProps.Id = new UInt32Value((uint)(1024 + imageNumber));
noVisualDrawingProps.Name = "Picture " + imageNumber.ToString();
noVisualDrawingProps.Description = beschreibung;
PictureLocks picLocks = new PictureLocks();
picLocks.NoChangeAspect = true;
picLocks.NoChangeArrowheads = true;
noVisualPictureDrawingProps.PictureLocks = picLocks;
XDrSp.NonVisualPictureProperties noVisualPictureProps = new XDrSp.NonVisualPictureProperties();
noVisualPictureProps.NonVisualDrawingProperties = noVisualDrawingProps;
noVisualPictureProps.NonVisualPictureDrawingProperties = noVisualPictureDrawingProps;
Stretch stretch = new Stretch();
stretch.FillRectangle = new FillRectangle();
XDrSp.BlipFill blipFill = new XDrSp.BlipFill();
Blip blip = new Blip();
blip.Embed = drawingsPart.GetIdOfPart(imagePart);
blip.CompressionState = BlipCompressionValues.Print;
blipFill.Blip = blip;
blipFill.SourceRectangle = new SourceRectangle();
blipFill.Append(stretch);
Transform2D t2d = new Transform2D();
t2d.Offset = offset;
t2d.Extents = extents;
XDrSp.ShapeProperties sp = new XDrSp.ShapeProperties();
sp.BlackWhiteMode = BlackWhiteModeValues.Auto;
sp.Transform2D = t2d;
PresetGeometry prstGeom = new PresetGeometry();
prstGeom.Preset = ShapeTypeValues.Rectangle;
prstGeom.AdjustValueList = new AdjustValueList();
sp.Append(prstGeom);
sp.Append(new NoFill());
XDrSp.Picture picture = new XDrSp.Picture();
picture.NonVisualPictureProperties = noVisualPictureProps;
picture.BlipFill = blipFill;
picture.ShapeProperties = sp;
XDrSp.OneCellAnchor anchor = this.getCellAnchor();
XDrSp.Extent extent = new XDrSp.Extent();
extent.Cx = extents.Cx;
extent.Cy = extents.Cy;
anchor.Extent = extent;
anchor.Append(picture);
anchor.Append(new XDrSp.ClientData());
worksheetDrawing.Append(anchor);
worksheetDrawing.Save(drawingsPart);
#endregion
}
我认为您是OpenXml SDK的新手
首先,您需要使用最新版本的Open XMl SDK-版本2.5 [下载-http://www.microsoft.com/zh-cn/download/details.aspx?id=30425 ]
在这里下载BOTH OpenXMLSDKV25.msi,OpenXMLSDKToolV25.msi ..安装BOTH。
现在这是窍门,OpenXML生产力工具正是您所需要的。它允许您浏览现有的Excel文件并将其分解为CODES [在此处观看-https: //www.youtube.com/watch?v=KSSMLR19JWA]
现在,您需要做的是根据需要手动创建一个Excel工作表[在您的情况下,在图像下添加文本框]然后使用生产力工具打开此Excel文件并了解CODE。请注意,您需要了解电子表格文件的结构才能了解此CODE [参考-https: //www.google.com/#q=open+xml+sdk] ..现在,使用的代码编写符合您要求的代码生产力工具
注意-一旦您使用生产率工具分析了虚拟电子表格,您将理解为什么给出或指导CODE示例作为答案是不切实际的。
-快乐编码-
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句