以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 批量合并execl数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92362) |
||||
-- 作者:jyh7081 -- 发布时间:2016/11/1 20:58:00 -- 批量合并execl数据 1、foxtable内有数张表,除表A、表B外,其余数据表的表结构均相同,但列数不同。数据表的第一列都是时间列,后面的每一列是一个股票数据。 2、同路径下有数个execl数据表,每个数据表的第一列都是时间列,后面的每一列也是一个股票数据。 3、想批量把数个execl数据表内的数据合并进foxtable的数个数据表。 问题是两种数据表的个数不是一一对应的,列数也不是一一对应的。 按照foxtable内数据表中含有的股票种类合并。 感觉就是要遍历所有execl工作表中的列和foxtable所有数据表中的列以后,再导入。但不会写代码,请指教! 附件:
|
||||
-- 作者:有点蓝 -- 发布时间:2016/11/1 22:02:00 -- http://www.foxtable.com/webhelp/scr/0328.htm |
||||
-- 作者:有点蓝 -- 发布时间:2016/11/1 22:03:00 -- Dim dlg As New OpenFileDialog dlg.MultiSelect = True If dlg.ShowDialog = DialogResult.OK Then Dim lst As new List(of String) lst.Add("_Identify") lst.Add("_Locked") lst.Add("_SortKey") lst.Add("时间") Dim dict As new Dictionary(of String,String) For Each dt As DataTable In DataTables If dt.Name.StartsWith("数据") Then For Each c As DataCol In dt.DataCols If lst.Contains(c.Name) = False AndAlso dict.ContainsKey(c.Name) = False Then dict.Add(c.Name,dt.Name) Next End If Next Dim dict2 As new Dictionary(of String,DataRow) SystemReady = False For Each fl As String In dlg.FileNames Dim Book As New XLS.Book(fl) Dim Sheet As XLS.Sheet = Book.Sheets(0) For m As Integer = 1 To Sheet.Cols.Count -1 If dict.ContainsKey(Sheet(0,m).Value) Then For n As Integer = 1 To Sheet.Rows.Count -1 Dim dr As DataRow Dim cl As String = dict(Sheet(0,m).Value) & "|" & Sheet(n,0).Value If dict2.ContainsKey(cl) Then dr = dict2(cl) Else dr = DataTables(dict(Sheet(0,m).Value)).AddNew() dr("时间") = Sheet(n,0).Value dict2.Add(cl,dr) End If dr(Sheet(0,m).Value) = Sheet(n,m).Value dict2(cl) = dr Next End If Next Next SystemReady = True End If
[此贴子已经被作者于2016/11/1 22:03:02编辑过]
|
||||
-- 作者:jyh7081 -- 发布时间:2016/11/1 22:35:00 -- 谢谢版主! 有点小问题,就是foxtable表中原先有的 “时间” 行数据没能覆盖,出现了重复的 “时间”行。能不能不是追加,而是覆盖写入? [此贴子已经被作者于2016/11/1 22:40:25编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2016/11/1 22:58:00 -- 参考2楼的第二个帮助 |
||||
-- 作者:jyh7081 -- 发布时间:2016/11/2 13:08:00 -- 版主,代码难度太大了,看了一早晨还是无从下手。麻烦有空再给看看。谢谢! |
||||
-- 作者:有点蓝 -- 发布时间:2016/11/2 14:49:00 -- 初学者先系统看看开发指南,和视频教程 |
||||
-- 作者:有点青 -- 发布时间:2016/11/2 18:00:00 -- Dim dlg As New OpenFileDialog
|
||||
-- 作者:jyh7081 -- 发布时间:2016/11/2 19:09:00 -- 谢谢版主和 有点青 老师! |