以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 怎么实现遍历表列名并遍历赋值? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173423) |
-- 作者:cnsjroom -- 发布时间:2021/11/29 10:54:00 -- 怎么实现遍历表列名并遍历赋值? 怎么实现遍历表列名并遍历赋值? 当前窗体有一个table11表 来源字段列 拟用来接收选择的textbox2中的excel表中的列名值 当有来源字段列后,怎么遍历textbox2中的excel表获取表行数据对应到排序这个表中各自的列呢? 当前代码如下:(已经实现获取列并生成对应的排序临时表,怎么获取excel表数据呢?)红色部分代码该怎么写呢? Dim r As Row Dim t As Table = e.Form.Controls("Table11").Table \' Dim i As Integer Dim Book As New XLS.Book(e.Form.Controls("TextBox2").value) Dim Sheet As XLS.Sheet = Book.Sheets(e.sender.value) t.StopRedraw t.DataTable.DataRows.clear For i = 0 To Sheet.Cols.count - 1 If Sheet(0,i).text > "" r = t.AddNew() r("来源字段") = Sheet(0,i).Value End If Next t.ResumeRedraw Dim Products As List(Of String) Products = T.DataTable.GetValues("来源字段") Dim dtb As New DataTableBuilder("排序") For Each Product As String In Products If Product.Contains("交易金额") Then dtb.AddDef(Product, Gettype(Double), 32) Else dtb.AddDef(Product, Gettype(String), 32) End If Next dtb.Build() MainTable=Tables("排序") Tables("排序").stopRedraw …… Tables("排序").ResumeRedraw
[此贴子已经被作者于2021/11/29 10:55:14编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/11/29 11:08:00 -- 之前不是做过这个功能了吗?记录"来源字段"同时记录execl表里的列索引使用啊 |
-- 作者:cnsjroom -- 发布时间:2021/11/29 12:46:00 -- 回复:(有点蓝)之前不是做过这个功能了吗?记录"来源... 已修正代码实现数据的匹配写入: Dim r As Row Dim t As Table = e.Form.Controls("Table11").Table Dim t1 As Table = e.Form.Controls("Table1").Table \' Dim i As Integer Dim Book As New XLS.Book(e.Form.Controls("TextBox2").value) Dim Sheet As XLS.Sheet = Book.Sheets(e.sender.value) t.StopRedraw t.DataTable.DataRows.clear For i = 0 To Sheet.Cols.count - 1 If Sheet(0,i).text > "" r = t.AddNew() r("来源字段") = Sheet(0,i).Value r("接收字段") = Sheet(0,i).Value r("来源列数")=i End If Next t.ResumeRedraw Dim Products As List(Of String) Products = T.DataTable.GetValues("来源字段") Dim dtb As New DataTableBuilder("排序") For Each Product As String In Products If Product.Contains("交易金额") Then dtb.AddDef(Product, Gettype(Double), 32) Else dtb.AddDef(Product, Gettype(String), 255) End If Next dtb.Build() MainTable=Tables("排序") Dim str As String Dim i1,j As Integer Tables("排序").stopRedraw For i1 = 1 To Sheet.Rows.Count -1 Dim r1 As Row = Tables("排序").addnew For j = 0 To t.Rows.count - 1 Dim ss As String =Sheet(i1,t.Rows(j)("来源列数")).Value r1(t.Rows(j)("接收字段")) = ss.Replace(" ", "").Trim Next Next Tables("排序").ResumeRedraw t1.DataSource =DataTables("排序") [此贴子已经被作者于2021/11/29 13:46:25编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/11/29 13:31:00 -- t3.Table.DataSource =Tables("排序") t3.Table.Sort=ss
|
-- 作者:cnsjroom -- 发布时间:2021/11/29 14:18:00 -- 回复:(有点蓝)t3.Table.DataSource =Tables("排序"... 谢谢老师的耐心指导 根据客户和日期排序,其中日期为降序,也就是相同客户的订单,最新的订单排在前面: Tables("订单").Sort = "客户,日期 DESC" 根据上述帮助内容,我拟c9、10、11、2四个组合进行排序,前三个任意列内容保持原有排序,c2采用降序,怎么操作呢? 下述代码操作后是c9、10、11、2四个都是降序了 Dim c7 As WinForm.ComboBox = e.Form.Controls("ComboBox7") Dim c9 As WinForm.ComboBox = e.Form.Controls("ComboBox9") Dim c10 As WinForm.ComboBox = e.Form.Controls("ComboBox10") Dim c11 As WinForm.ComboBox = e.Form.Controls("ComboBox01") Dim c2 As WinForm.ComboBox = e.Form.Controls("ComboBox2") Dim t3 As WinForm.Table = e.Form.Controls("Table3") t3.Table.DataSource =DataTables("排序") Dim ss As String If c9.text<>"" Then ss = c9.text & "," End If If c10.text<>"" Then ss = ss & c10.text & "," End If If c11.text<>"" Then ss = ss & c11.text & "," End If If c2.text<>"" Then ss = ss & c2.text End If If c7.text="降序" Then ss=ss & " desc" Else If c7.text="升序" And c7.text="" Then ss=ss & " desc" End If \'MessageBox.Show(ss) Tables("排序").Sort=ss t3.Table.Sort=ss |
-- 作者:有点蓝 -- 发布时间:2021/11/29 14:44:00 -- If c2.text<>"" Then If c7.text="降序" Then ss=ss & c2.text & " desc" Else ss=ss & c2.text End If End If MessageBox.Show(ss)
|
-- 作者:cnsjroom -- 发布时间:2021/11/29 15:23:00 -- 回复:(有点蓝)If c2.text<>"" ThenIf ... 老师 根据你的指导 我得到排序的数据后 我用下面的方式导出Excel 导出得到的数据只有十二条 实际数据大于十二条 有没有办法修正显示全部数据呢
|
-- 作者:有点蓝 -- 发布时间:2021/11/29 15:25:00 -- 如果有筛选条件,去掉 |
-- 作者:cnsjroom -- 发布时间:2021/11/29 15:53:00 -- 回复:(有点蓝)如果有筛选条件,去掉 没有设置筛选条件 直接是母本表进行排序后 将排序结果显示在table3副本表中 然后直接保存为Excel表 只有十二条数据 部分数据没有显示出来 如果用导出Excel的方式 可以导出表完整数据 但是导出得到的表格式和母本表格式不一样
|
-- 作者:有点蓝 -- 发布时间:2021/11/29 16:01:00 -- 不可能的,saveExcel只能导出tables(“排序”)看得到的数据,如果没有肯定被筛选掉了 |