以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何以对话框形式选择Excel文件并将内容直接导入既有表中 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=169113) |
||||||||
-- 作者:pzxas -- 发布时间:2021/6/3 5:50:00 -- 如何以对话框形式选择Excel文件并将内容直接导入既有表中
我有一个表格,里面的数据需要从Excel表格中读取,但表格分布在各个文件夹里,不能每次都修改代码,请问如何在选择Excel文件时采用对话框形式进行选择. Dim Book As New XLS.Book("d:\\速报 - 副本.xlsx") \'能不能在此行将"d:\\速报 - 副本.xlsx"以对话框形式进行文件的选择 Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("现场速报").StopRedraw() \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim nms() As String = {"序号","检测位置","技术要求","检测结果","结果判定","备注"} \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 For n As Integer = 8 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() |
||||||||
-- 作者:有点蓝 -- 发布时间:2021/6/3 9:03:00 -- 参考:http://www.foxtable.com/webhelp/topics/0328.htm Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel文件|*.xls;*.xlsx" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim Book As New XLS.Book(dlg.FileName) ……
End If |
||||||||
-- 作者:pzxas -- 发布时间:2021/6/3 17:15:00 -- 回复:(有点蓝)参考:http://www.foxtable.com/webh... 非常感谢,指导后调试成功. Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel文件|*.xls;*.xlsx|Word文件|*.doc;*.docx|Access文件|*.mdb" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 MessageBox.Show("你选择的是:" & dlg.FileName,"提示") \'提示用户选择的文件 End If Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("现场速报").StopRedraw() \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim nms() As String = {"序号","检测位置","技术要求","检测结果","结果判定","备注"} \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 For n As Integer = 8 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() |
||||||||
-- 作者:有点蓝 -- 发布时间:2021/6/3 17:17:00 -- Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel文件|*.xls;*.xlsx|Word文件|*.doc;*.docx|Access文件|*.mdb" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 MessageBox.Show("你选择的是:" & dlg.FileName,"提示") \'提示用户选择的文件 Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("现场速报").StopRedraw() \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim nms() As String = {"序号","检测位置","技术要求","检测结果","结果判定","备注"} \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 For n As Integer = 8 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() End If
|
||||||||
-- 作者:pzxas -- 发布时间:2021/6/4 6:39:00 -- 回复:(pzxas)如何以对话框形式选择Excel文件并将内... 提取数据的速报 -副本.xlsx表中最下面两行是无用的数据,请问如何去除
|
||||||||
-- 作者:有点蓝 -- 发布时间:2021/6/4 8:34:00 -- …… For n As Integer = 8 To Sheet.Rows.Count -1 if Sheet(n,0).text = “” then exit for Dim r As Row = Tables("现场速报").AddNew() For m As Integer = 0 To nms.Length - 1 r(nms(m)) = Sheet(n,m).Value Next Next
|
||||||||
-- 作者:pzxas -- 发布时间:2021/6/4 9:01:00 -- 回复:(有点蓝)……For n As Integer = 8 To Sheet.... 谢谢,已经完美实现;现在还有个问题: 如果我想一次性读取多个文件(格式相同)的数据,并根据我选取文件的先后依次读取.请问该如何编写.谢谢
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel文件|*.xls;*.xlsx|Word文件|*.doc;*.docx|Access文件|*.mdb" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 MessageBox.Show("你选择的是:" & dlg.FileName,"提示") \'提示用户选择的文件 Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("现场速报").StopRedraw() \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim nms() As String = {"序号","检测位置","技术要求","检测结果","结果判定","备注"} \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 For n As Integer = 8 To Sheet.Rows.Count -1 If sheet(n,0).text = ""then exit for
\'去除读取文件底部的无用数据 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() End If |
||||||||
-- 作者:有点蓝 -- 发布时间:2021/6/4 9:18:00 -- 可以选择多个文件:http://www.foxtable.com/webhelp/topics/0328.htm 但是没有办法指定选择顺序
|
||||||||
-- 作者:pzxas -- 发布时间:2021/6/4 10:07:00 -- 回复:(有点蓝)可以选择多个文件:http://www.foxta... 谢谢老师;我用DO....loop语句实现 了这个功能;您看可以吗 Dim Result As DialogResult Result = MessageBox.Show("开始提取文件吗", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) Do While Result = DialogResult.Yes \'批量选取导入文件 Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "Excel文件|*.xls;*.xlsx|Word文件|*.doc;*.docx|Access文件|*.mdb" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 MessageBox.Show("你选择的是:" & dlg.FileName,"提示") \'提示用户选择的文件 Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("现场速报").StopRedraw()\'fox表中待导入表的名称 \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim nms() As String = {"序号","检测位置","技术要求","检测结果","结果判定","备注"} \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 For n As Integer = 8 To Sheet.Rows.Count -1 If sheet(n,0).text = ""then exit for \'去除读取文件底部的无用数据 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() End If Result = MessageBox.Show("需要继续提取文件吗", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) Loop MessageBox.Show("再见.","提示") |
||||||||
-- 作者:有点蓝 -- 发布时间:2021/6/4 10:10:00 -- 自己测试没有问题即可 |