以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]导入XLS文件至现有表中  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=38241)

--  作者:gzdw
--  发布时间:2013/7/23 22:56:00
--  [求助]导入XLS文件至现有表中

因工作中需要导入不同内容,但格式一样的XLS文件进行数据处理,

现要实现“窗口1”,“导入”按钮的代码,

要求:
1.先判断原有的成绩表是否有记录,如有则全部删除.
2.根据选择的文件及工作表,把所有数据导入至现有的"成绩表"中.

备注:成绩表与XLS文件的结构相同.

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导入xls.table

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:成绩排名.xls

[此贴子已经被作者于2013-7-23 22:58:02编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/7/24 9:04:00
--  

你可以看看这个:

http://www.foxtable.com/help/topics/2334.htm

 


--  作者:gzdw
--  发布时间:2013/7/24 9:11:00
--  

 

 

导入代码,加入删除原有数据功能。

 

 

Dim str1 As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim str2 As WinForm.ComboBox = e.Form.Controls("ComboBox1")

Dim check1 As WinForm.CheckBox = e.Form.Controls("CheckBox1")

If check1.Checked = True
  DataTables("成绩表").DeleteFor("")
End If

Dim Book As New XLS.Book(str1.text)
Dim Sheet As XLS.Sheet = Book.Sheets(str2.text)
Tables("成绩表").StopRedraw()

Dim nms() As String = {"班级","学号","姓名","语文","数学","英语","物理","化学"}

\'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim r As Row = Tables("成绩表").AddNew()
    For m As Integer = 0 To nms.Length - 1
        r(nms(m)) = Sheet(n,m).Value
    Next
Next
Tables("成绩表").ResumeRedraw()
DataTables("成绩表").save
DataTables("成绩表").Load

MessageBox.Show("导入完成")

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:导入xls.table

[此贴子已经被作者于2013-7-24 13:50:39编辑过]

--  作者:gzdw
--  发布时间:2013/7/24 13:56:00
--  

上面这个例子,如果导入窗口放入一个绑定“成绩表”的TABLE控件,则导入速度会变慢。

请问如何消除这个问题?


--  作者:Bin
--  发布时间:2013/7/24 14:06:00
--  

因为系统要同步更新成绩表 肯定会变慢.

Tables("窗口1_Table1").StopRedraw()
Tables("窗口1_Table1").ResumeRedraw()

绑定的那个表也停止更新绘制 应该会有改善