word vba 插入图片

word vba 插入图片,第1张

Sub 批量插入图片()

Dim myfile As FileDialog

Set myfile = Application.FileDialog(msoFileDialogFilePicker)

With myfile

.InitialFileName = "E:\工作文件" ‘这里输入你要插入图片的目标文件夹

If .Show = -1 Then

For Each Fn In .SelectedItems

Selection.Text = Basename(Fn) '这两句移到这里

Selection.EndKey

If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末

Selection.TypeParagraph '在文末添加一空段

Else

Selection.MoveDown

End If

Set MyPic = Selection.InlineShapes.AddPicture(FileName:=Fn, SaveWithDocument:=True) '按比例调整相片尺寸

WidthNum = MyPic.Width

c = 6 '在此处修改相片宽,单位厘米

MyPic.Width = c * 28.35

MyPic.Height = (c * 28.35 / WidthNum) * MyPic.Height

If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末

Selection.TypeParagraph '在文末添加一空段

Else

Selection.MoveDown

End If

Next Fn

Else

End If

End With

Set myfile = Nothing

End Sub

Function Basename(FullPath) '取得文件名

Dim x, y

Dim tmpstring

tmpstring = FullPath

x = Len(FullPath)

For y = x To 1 Step -1

If Mid(FullPath, y, 1) = "\" Or _

Mid(FullPath, y, 1) = ":" Or _

Mid(FullPath, y, 1) = "/" Then

tmpstring = Mid(FullPath, y + 1)

Exit For

End If

Next

Basename = Left(tmpstring, Len(tmpstring) - 4)

End Function

执行此代码后,d出的选择对话框, 全选目标文件夹下的所有图片文件之后,点击确定。然后静静的等待电脑完成处理工作,次数word会进入无响应状态。图片越多,无响应的时间越长。

用VLOOKUP即可,不过需要你的样表,Q 306212368

插入图片需要VBA

举例如下:

EXCEL表格,A列是产品图片,B列是货号,能否在B列输入货号(如123)的同时把放在E:\PIC目录下的相应货号的JPG图片调出来,且大小与A列单元格完全相符。

用vba,按下ALT+F11,菜单:插入-模块,复制下面代码至代码框.按F5即可

Sub addpicture()

Dim FirstRow, LastRow As Integer, FileType As String

FirstRow = Sheet1.UsedRange.Row

LastRow = FirstRow + Sheet1.UsedRange.Rows.Count - 1

FileType = InputBox("输入你的图片的后缀名", "输入图片格式", "jpg")

For i = FirstRow To LastRow

Numb = Cells(i, 2).Value

With ActiveSheet

.Pictures.Insert("D:\tmp\" &Numb &"." &FileType).Select

Set Target = .Cells(i, 1)

End With

With Selection

.Top = Target.Top + 1

.Left = Target.Left + 1

.Width = Target.Width - 1

.Height = Target.Height - 1

End With

Next i

End Sub

说明,图片文件夹 图片文件名与输入货号一致。

按比例缩放,然后再上传,计算按比例缩放后的宽和高,然后再生成,下面是我项目中的例子,希望对LZ有所帮助:

public class addpicture : LHPage

{

protected string ctrname = ""

protected string genthumb = ""

private void Page_Load(object sender, System.EventArgs e)

{

// 在此处放置用户代码以初始化页面

if(!Utilities.CheckLogin())

{

Response.Write("<script language=\"javascript\">top.document.location=\"login.aspx\"</script>")

Response.End()

}

ctrname = Request["ctrname"]

if(ctrname == null)

ctrname = ""

genthumb = Request["genthumb"]

if(genthumb == null)

genthumb = ""

HttpPostedFile httpfile = Request.Files["postedfile"]

if(httpfile != null)

{

if(httpfile.ContentLength >4028 * 1024)

return

string sfileguid = Guid.NewGuid().ToString()

int iLastIndex = httpfile.FileName.LastIndexOf(".")

string sex = ""

if(iLastIndex >= 0)

sex = httpfile.FileName.Substring(iLastIndex)

sfileguid += sex

DataTable dtsys = Utilities.ConfigInfo

string allowedexs = "|" + dtsys.Rows[0]["AllowedExs"].ToString() + "|"

if(sex.Length >0)

{

if(allowedexs.IndexOf("|" + sex.Substring(1).ToLower() + "|") <0)

{

Response.Write("<script language=\"javascript\">alert('您不能上传该类文件格式,请在系统设置中设置!')</script>")

return

}

}

YTDateTime ytdtime = new YTDateTime()

ytdtime.dDateTime = DateTime.Now

string savedir = ytdtime.sDate.Substring(0, 6)

if(!Directory.Exists(Server.MapPath(Utilities.UploadedFileDir + "/" + savedir)))

Directory.CreateDirectory(Server.MapPath(Utilities.UploadedFileDir + "/" + savedir))

using(FileStream fs = new FileStream(Server.MapPath(Utilities.UploadedFileDir + "/" + savedir) + "\\" + sfileguid, FileMode.Create, FileAccess.ReadWrite, FileShare.None))

{

byte [] btbuf = new byte[httpfile.InputStream.Length]

httpfile.InputStream.Read(btbuf, 0, btbuf.Length)

fs.Write(btbuf, 0, btbuf.Length)

}

if(genthumb == "yes")

{

//要生成缩略图

ImageClip imgclip = new ImageClip()

imgclip.OpImage = Bitmap.FromFile(Server.MapPath(Utilities.UploadedFileDir + "/" + savedir) + "\\" + sfileguid)

Bitmap bmptmp = (Bitmap)imgclip.OpImage

imgclip.Width = int.Parse(dtsys.Rows[0]["MaxThumbnailWidth"].ToString())

imgclip.Height = int.Parse(dtsys.Rows[0]["MaxThumbnailHeight"].ToString())

imgclip.Options = ImageClip.MODE_TRANSLATE | ImageClip.MODE_CONSTRAINBYWIDTH | ImageClip.MODE_CONSTRAINRATIO

if(!imgclip.ExecuteTransfer())

{

Response.Write("<script language=\"javascript\">alert('生成缩略图失败!')</script>")

return

}

string sguid = Guid.NewGuid().ToString()

imgclip.OpImage.Save(Server.MapPath(Utilities.UploadedFileDir + "/" + savedir) + "\\" + sguid + sex)

Response.Write("<script language=\"javascript\">parent.UpdateFile('" + savedir + "/" + sfileguid + "', '"+ctrname+"', '"+savedir + "/" + sguid + sex +"')</script>")

bmptmp.Dispose()

imgclip.OpImage.Dispose()

return

}

if(ctrname.Length <= 0)

Response.Write("<script language=\"javascript\">parent.UpdateFile('" + savedir + "/" + sfileguid + "')</script>")

else

Response.Write("<script language=\"javascript\">parent.UpdateFile('" + savedir + "/" + sfileguid + "', '"+ctrname+"')</script>")

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11215906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存