Foxtable(狐表)用户栏目专家坐堂 → Excel报表如何导出图片?


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

主题:Excel报表如何导出图片?

帅哥哟,离线,有人找我吗?
1234567
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:564 积分:4692 威望:0 精华:0 注册:2013/2/18 17:46:00
Excel报表如何导出图片?  发帖心情 Post By:2014/6/23 8:45:00 [只看该作者]

如果是图片列,在用Excel报表 导出数据 时,怎么处理?

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/6/23 8:47:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:564 积分:4692 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2014/6/23 8:52:00 [只看该作者]

导出数据

虽然Foxtable已经有导出Excel的功能,但是不够灵活。
如果你有更多的要求,可以用Excel报表来实现导出功能。

例如下面的代码,导出订单表,用红色背景标出折扣超过0.15的单元格:

Dim dt As Table = Tables("订单")
Dim
Book As New XLS.Book '定义一个Excel工作簿
Dim
Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim
Style As Xls.Style = Book.NewStyle '新建一个样式
Style.BackColor = Color.Red '样式的背景颜色设为红色
For
c As Integer = 0 To dt.Cols.Count -1 '添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For
r As Integer = 0 To dt.Rows.Count - 1 '填入数据
   
For c As Integer = 0 To dt.Cols.Count -1
        Sheet(r +1, c).Value = dt.rows(r)(c)
    Next
    If
dt.rows(r)("折扣") >= 0.15 Then '如果折扣大于等于0.15
        Sheet(r + 1,dt.Cols("折扣").Index).Style = Style '设置折扣单元格的样式
   
End If
Next

'打开工作簿

Book.Save("c:\reports\test.xls")
Dim
Proc As New Process
Proc.File = "c:\reports\test.xls"
Proc.Start()


此主题相关图片如下:1560.png
按此在新窗口浏览图片

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/6/23 8:53:00 [只看该作者]

看2楼帮助 第二个

 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:564 积分:4692 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2014/6/23 10:12:00 [只看该作者]

Sheet(10,2).Value = New XLS.Picture(GetImage("c:\Foxtable.Ico"))
每个单元格必须一一指定文件路径吗,不能象产品列一样直接从 Tables("订单") 中导出吗?

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/6/23 10:14:00 [只看该作者]

表中的行不就是存放着路径么

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/23 10:15:00 [只看该作者]

回复5楼,你根据表的路径,加上defaultFolder,就得到图片的完整路径了,那就能直接得到图片了。

 

之后,你赋值即可。

 

http://www.foxtable.com/help/topics/2043.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:564 积分:4692 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2014/6/23 11:36:00 [只看该作者]

还是没搞懂,版主帮我改一下代码。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:excel报表.table


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/23 11:43:00 [只看该作者]

 类似这样写

 

Dim dt As Table = Tables("订单")
Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim Style As Xls.Style = Book.NewStyle '新建一个样式
Style.BackColor = Color.Red '样式的背景颜色设为红色
For c As Integer = 0 To dt.Cols.Count -1 '添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To dt.Cols.Count -1
        If dt.Cols(c).DataCol.ExtendType = ExtendTypeEnum.Images Then
            Dim path As String = ProjectPath & "Attachments/" & dt.rows(r)(c)
            If FileSys.FileExists(path) Then
                Sheet(r +1, c).Value = New XLS.Picture(GetImage(path))
            End If
        Else
            Sheet(r +1, c).Value = dt.rows(r)(c)
        End If
    Next
    If dt.rows(r)("折扣") >= 0.15 Then '如果折扣大于等于0.15
        Sheet(r + 1,dt.Cols("折扣").Index).Style = Style '设置折扣单元格的样式
    End If
Next
'打开工作簿
Book.Save("c:\reports\test.xls")
Dim Proc As New Process
Proc.File = "c:\reports\test.xls"
Proc.Start()


 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:564 积分:4692 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2014/7/1 10:36:00 [只看该作者]

 Sheet(r +1, c).Value = New XLS.Picture(GetImage(path))
插入图片的左边距,上边距,高度,宽度怎么设定?

 回到顶部
总数 27 1 2 3 下一页