Excel组文本框和图片

沃尔特

我找到了一些代码,可以使用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
    }
凯文杜(Kavindu Dodanduwa)

我认为您是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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel VBA-检查文本框组

来自分类Dev

按文本框搜索图片

来自分类Dev

Excel VBA,空文本框和CInt

来自分类Dev

如何在C#中使按钮,文本框,表单和组框的边缘变圆?

来自分类Dev

多个文本框的jQuery组验证

来自分类Dev

多个文本框的jQuery组验证

来自分类Dev

PHP使用jquery创建多个图片上传和多个文本框

来自分类Dev

VBA Excel:如果更改了文本框,则添加第二组命令

来自分类Dev

使用文本框和按钮将Bootstrap Glyphicon添加到输入组

来自分类Dev

是否可以在组框内隐藏文本框和标签?

来自分类Dev

如何访问组框中的文本框?

来自分类Dev

文本框限制错误Excel VBA

来自分类Dev

Excel宏更改文本框颜色

来自分类Dev

EXCEL验证用户表单文本框

来自分类Dev

VBA Excel-文本框验证

来自分类Dev

从Excel填充Word中的文本框

来自分类Dev

文本框日期格式Excel VBA

来自分类Dev

如何在Excel的特定行和列中存储许多文本框和标签?

来自分类Dev

侧面带有文本框的HTML CSS图片

来自分类Dev

侧面带有文本框的HTML CSS图片

来自分类Dev

将图片插入或复制/粘贴到文本框

来自分类Dev

使用文本框和标签继承

来自分类Dev

文本框和按钮html / php

来自分类Dev

通过文本框开始和结束

来自分类Dev

文本框和屏幕键盘

来自分类Dev

使用文本框过滤和搜索

来自分类Dev

我如何从单独的文本框中的自动完成响应获取json键和值。请看图片

来自分类Dev

如何使Windows 10在启动时显示密码文本框,而不是带有时间和日期的图片?

来自分类Dev

我如何从单独的文本框中的自动完成响应获取json键和值。请看图片