以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 表的转换 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=8641) |
||||
-- 作者:实话实说 -- 发布时间:2010/11/20 15:08:00 -- 表的转换 我想将EXCEL表转换成表B的样式,请高手指点
|
||||
-- 作者:mr725 -- 发布时间:2010/11/20 20:13:00 -- \'\'\' Dim dtb As New DataTableBuilder("Excel转置") dtb.AddDef("型号", Gettype(String),15) dtb.AddDef("规格", Gettype(String),15) dtb.AddDef("材料", Gettype(String)) dtb.AddDef("用量", Gettype(Double)) dtb.Build() MainTable= Tables("Excel转置") For i As Integer = 0 To Tables("EXCEL表").count -1 If Tables("EXCEL表").rows(i)("型号") > "" \'用IsNull好些 For ii As Integer = 2 To Tables("EXCEL表").cols.count -1 Dim lm As String = Tables("EXCEL表").cols(ii).name If Tables("EXCEL表").rows(i).IsNull(lm) = False Tables("EXCEL转置").addnew Dim r As Row = Tables("EXCEL转置").current r("型号") = Tables("EXCEL表").rows(i)("型号") r("规格") = Tables("EXCEL表").rows(i)("规格") r("材料") = lm r("用量") = Tables("EXCEL表").rows(i)(lm) End If Next End If Next |
||||
-- 作者:实话实说 -- 发布时间:2010/12/2 11:24:00 -- 谢谢mr725,代码可用。现在想改进一下,因为数据量大,每次转换时只转换新加入的数据,已有的数据不变。 |
||||
-- 作者:czy -- 发布时间:2010/12/2 11:49:00 -- 怎么区分新加的数据?是型号不同吗? |
||||
-- 作者:czy -- 发布时间:2010/12/2 16:08:00 -- 用这种办法行不行?
|
||||
-- 作者:czy -- 发布时间:2010/12/2 16:12:00 -- 如果每次转换的数据量大,将窗口按钮代码改成这样好一点。
Dim drs As List(Of DataRow) = DataTables("EXCEL表").Select("[型号] Is Not Null And [sys_标记] = False") [此贴子已经被作者于2010-12-2 16:14:26编辑过]
|
||||
-- 作者:实话实说 -- 发布时间:2010/12/3 9:14:00 -- 谢谢CZY,测试通过 |