以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 请教一个日期时间的导入问题! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65686)
|
-- 作者:Bin
-- 发布时间:2015/3/20 15:30:00
--
编码合并吧
|
-- 作者:Bin
-- 发布时间:2015/3/20 15:31:00
--
上例子,有代码控制岂有不行之理
|
-- 作者:有点甜
-- 发布时间:2015/3/20 16:04:00
--
foxtable去excel时间是有问题的,要用vba去处理才行
Dim dlg As New OpenFileDialog dlg.Filter= "所有文件|*.*|Excel2003文件|*.xls|Excel2007文件|*.xlsx" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 MessageBox.Show("你选择的是:" & dlg.FileName,"提示") If MessageBox.Show("是否合并?","请确 认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then DataTables("表A").StopRedraw Dim App As New MSExcel.Application try Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName) Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) Dim Rg As MSExcel.Range = Ws.UsedRange For n As Integer = 2 To rg.Rows.Count Dim ro As Row = Tables("表A").AddNew For i As Integer = 0 To Tables("表A").Cols.Count - 1 ro(i) = ws.Cells(n,i+2).Text Next Next catch ex As exception msgbox(ex.message) finally DataTables("表A").ResumeRedraw app.quit End try Else Return End If End If MessageBox.Show("导入成功!","恭喜!")
|
-- 作者:有点甜
-- 发布时间:2015/3/20 16:45:00
--
换一下,用二维数组导入会快
Dim dlg As New OpenFileDialog dlg.Filter= "所有文件|*.*|Excel2003文件|*.xls|Excel2007文件|*.xlsx" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 MessageBox.Show("你选择的是:" & dlg.FileName,"提示") If MessageBox.Show("是否合并?","请确 认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then DataTables("表A").StopRedraw Dim App As New MSExcel.Application try Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName) Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) Dim Rg As MSExcel.Range = Ws.UsedRange Dim ary = rg.value For n As Integer = 2 To rg.Rows.Count Dim ro As Row = Tables("表A").AddNew For i As Integer = 0 To Tables("表A").Cols.Count - 1 ro(i) = ary(n,i+2) Next Next MessageBox.Show("导入成功!","恭喜!") catch ex As exception msgbox(ex.message) MessageBox.Show("导入失败!","恭喜!") finally DataTables("表A").ResumeRedraw app.quit End try Else Return End If End If
|
-- 作者:yinyb36
-- 发布时间:2016/4/3 15:59:00
--
运行Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName) 出错: .NET Framework 版本:2.0.50727.8670 Foxtable 版本:2016.3.27.1 错误所在事件:窗口,Excel导入,Btn导入数据,Click 详细错误信息: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 800702e4。
|
-- 作者:大红袍
-- 发布时间:2016/4/3 17:14:00
--
回复9楼,参考
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=54396&replyID=360697&skin=1
|
-- 作者:chen3728060
-- 发布时间:2017/8/23 22:51:00
--
有新人会看这个贴然后很迷茫,看不懂,我重新给一个简单的
此主题相关图片如下:qq图片20170823225121.png
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "excel文件|*.xlsx; *.xls" \'设置筛选器 Dim dr As DataRow If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim App As New MSExcel.Application try Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName) Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) Dim Rg As MSExcel.Range = Ws.UsedRange Dim ary = rg.value \'重点看这里,自己根据表格位置调整导入把--- For n As Integer = 1 To rg.Rows.Count output.show(ary(n,1) & "," & ary(n,2) & "," & ary(n,3) & "," & ary(n,4)) Next \'重点看这里,自己根据表格位置调整导入把--- MessageBox.Show("导入成功!","恭喜!") catch ex As exception msgbox(ex.message) MessageBox.Show("导入失败!","恭喜!") finally app.quit End try End If
思路关键就是获取完整个excel表格后,知道 ary(1,1)代表 单元格(1,1),剩下就是自己遍历去塞
|
-- 作者:jackchan120925
-- 发布时间:2017/8/24 21:50:00
--
中间的代码
Dim ary = rg.value
ary不用申明类型么?
|
-- 作者:jackchan120925
-- 发布时间:2017/8/24 22:23:00
--
Dim ary = rg.value
请问这段代码,不用申明类型吗?dim ary也不是申明数组的格式呀?
|
-- 作者:有点色
-- 发布时间:2017/8/24 22:48:00
--
以下是引用jackchan120925在2017/8/24 21:50:00的发言: 中间的代码 Dim ary = rg.value ary不用申明类型么?
不声明,就是object类型。
|