Foxtable(狐表)用户栏目专家坐堂 → tables导出成excel,如何将关联的字段导出?


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

主题:tables导出成excel,如何将关联的字段导出?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
tables导出成excel,如何将关联的字段导出?  发帖心情 Post By:2021/12/30 8:56:00 [只看该作者]

订单表 中 有个字段是“种类”,如何加到以下导出中啊?
Dim dt As Table = Tables("订单明细表")
Dim nms() As String = {"订单号",“物品名称”} '要导出的列名
Dim caps() As String = {"订单号",“物品名称"} '对应的列标题
Dim szs() As Integer = {150,100} '对应的列宽
Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

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


加好友 发短信
等级:超级版主 帖子:110779 积分:563827 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/30 9:09:00 [只看该作者]

贴出完整代码说明,要导到什么地方?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2021/12/30 9:15:00 [只看该作者]

订单表 中 有个字段是“种类”,如何加到以下导出中啊?

Dim dt As Table = Tables("订单明细表")
Dim nms() As String = {"订单号",“物品名称”} '要导出的列名
Dim caps() As String = {"订单号",“物品名称"} '对应的列标题
Dim szs() As Integer = {150,100} '对应的列宽
Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

For c As Integer = 0 To nms.length -1
    Sheet(0, c).Value = caps(c) '指定列标题
    Sheet.Cols(c).Width = szs(c) '指定列宽
Next
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To nms.length -1
                Sheet(r +1, c).Value = dt.rows(r)(nms(c))
    Next
Next

Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then
    Book.Save(dlg.FileName)
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()
End If

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


加好友 发短信
等级:超级版主 帖子:110779 积分:563827 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/30 9:26:00 [只看该作者]

要导到execl的什么地方?第一行?最后一行?第10000行?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2021/12/30 9:33:00 [只看该作者]

按照上面的代码,导出的excel只有 两列,订单号和物品名称。 我是想加一列,“种类”,但是,这个列在,订单表中 而 不在订单明细中,所以不知道怎么操作啊。
如果是后台数据操作,可以用SQLJoinTableBuilder的addtable的方法,但是这个前端已经加载的表,不知道该怎么操作了啊。
[此贴子已经被作者于2021/12/30 9:36:03编辑过]

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


加好友 发短信
等级:超级版主 帖子:110779 积分:563827 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/30 9:50:00 [只看该作者]

Dim dt As Table = Tables("订单明细表")
Dim nms() As String = {"订单号",“物品名称”} '要导出的列名
Dim caps() As String = {"订单号",“物品名称"} '对应的列标题
Dim szs() As Integer = {150,100} '对应的列宽
Dim Book As New XLS.Book '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表

For c As Integer = 0 To nms.length -1
    Sheet(0, c).Value = caps(c) '指定列标题
    Sheet.Cols(c).Width = szs(c) '指定列宽
Next
Sheet(0, nms.length).Value = "种类" '指定列标题
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To nms.length -1
                Sheet(r +1, c).Value = dt.rows(r)(nms(c))
    Next
dim dr as datarow = datatables("订单表").find("订单号=‘“ & dt.rows(r)("订单号") & ”’")
if dr isnot nothing then
Sheet(r +1, nms.length).Value = dr("种类")
end if
Next

 回到顶部