Foxtable(狐表)用户栏目专家坐堂 → 单元格内填充图片


  共有5527人关注过本帖树形打印复制链接

主题:单元格内填充图片

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/22 9:27:00 [显示全部帖子]


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/22 13:46:00 [显示全部帖子]

同样的用法,不会就上传实例

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/22 14:20:00 [显示全部帖子]

drawcell事件

If e.Col.Name = "第二列" Then
    If FileSys.FileExists(ProjectPath & "Attachments\" & e.Row("第二列")) Then
        e.Graphics.DrawImage(getImage(ProjectPath & "Attachments\" & e.Row("第二列")),e.x +1,e.y+1,e.Width - 2,e.Height - 2)
        e.Text = ""
    End If
End If

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/29 14:27:00 [显示全部帖子]

单元格存储的是什么内容?

drawcell事件

If e.Col.Name = "第二列" Then
    If FileSys.FileExists(e.Col.DataCol.DefaultFolder & "\" & e.Row("第二列")) Then
        e.Graphics.DrawImage(getImage(e.Col.DataCol.DefaultFolder & "\" & e.Row("第二列")),e.x +1,e.y+1,e.Width - 2,e.Height - 2)
        e.Text = ""
    End If
End If

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/3 8:43:00 [显示全部帖子]

1、建议同步保存一份缩略图,绘制的时候使用小图。图片绘制本身就比较占用资源
2、建议还是使用附件窗口查看图片。毕竟单元格那么小个地方也看不到多少细节

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/3 9:45:00 [显示全部帖子]


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/3 10:22:00 [显示全部帖子]

比如:Dim file As String = tables("表A").current("图片列")

不过除非是添加附件的时候就同步生成缩略图,如果是在drawcell里生成,反而更浪费资源

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/4 9:07:00 [显示全部帖子]

比如5楼的例子

BeforeAttachFile事件


Select Case e.DataCol.Name
    Case "第二列" '如果在图片列插入文件
        Dim img As image = getImage(ProjectPath & "Attachments\" & e.FileName)
        If img.Width > 100 OrElse img.height > 100 Then
            Dim name As String = e.FileName
            Dim n2 As String = name.Split(".")(0)
            Dim file As String = ProjectPath & "Attachments\" & n2 & "_缩略图." & name.Split(".")(1)
            msgbox(file)
            
            Dim bmp As new bitmap(img, 100, 100 * (img.height / img.width))
            bmp.save(file)
            bmp.Dispose
        End If
End Select

drawcell事件
If e.Col.Name = "第二列" Then
    If FileSys.FileExists(ProjectPath & "Attachments\" & e.Row("第二列")) Then
        Dim ar() As String = e.Row("第二列").split(".")
        Dim p As String = ProjectPath & "Attachments\" & ar(0) & "_缩略图." & ar(1)
        Dim img As Image
        If FileSys.FileExists(p) Then
            img = getImage(p)
        Else
            img = getImage(ProjectPath & "Attachments\" & e.Row("第二列"))
        End If
        e.Graphics.DrawImage(img,e.x +1,e.y+1,e.Width - 2,e.Height - 2)
        e.Text = ""
    End If
End If

已经添加的图片,自己使用代码遍历所有行生成一次缩略图

 回到顶部