以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  tables导出成excel,如何将关联的字段导出?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=174065)

--  作者:guosheng
--  发布时间:2021/12/30 8:56:00
--  tables导出成excel,如何将关联的字段导出?
订单表 中 有个字段是“种类”,如何加到以下导出中啊?
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) \'引用工作簿的第一个工作表

--  作者:有点蓝
--  发布时间:2021/12/30 9:09:00
--  
贴出完整代码说明,要导到什么地方?
--  作者:guosheng
--  发布时间: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

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

--  作者:有点蓝
--  发布时间: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