Foxtable(狐表)用户栏目专家坐堂 → 关于导入Excel的问题


  共有2217人关注过本帖树形打印复制链接

主题:关于导入Excel的问题

帅哥哟,离线,有人找我吗?
hongye
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:437 积分:2943 威望:0 精华:0 注册:2011/3/15 12:49:00
关于导入Excel的问题  发帖心情 Post By:2021/3/25 10:47:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:01.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:02.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:03.jpg
图片点击可在新窗口打开查看

我想把这Excel导入到“表D”,大概的代码如下:

Dim Book As New XLS.Book("I:\transDetail2021-03-24.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("表D").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"业务流水号","交易日期","交易时间","借方发生额","贷方发生额","账户余额","凭证种类","凭证号","交易渠道","交易地点","摘要","付款用途","对方账户","对方账户名","对方开户行","附言"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 5 To Sheet.Rows.Count -1
    Dim bh As String = sheet(n,0).Text
    Dim bi As String = sheet(n,1).Text
    If DataTables("表D").Find("业务流水号 = '" & bh & "' and 业务流水号 = '" & bi & "'") Is Nothing Then '如果不存在同编号的订单
        Dim r As Row = Tables("表D").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next
    End If
Next
Tables("表D").ResumeRedraw()

但是现在出现几个问题:
1、导入时间特别长,其实是真正有效的数据只有230多行,但是该报表不知道为什么总行数有20000多行。
2、数据的240行和241行(由数据行确定)是不需要导入的,不知道怎么搞。
3、导入后“表D”里足足有20000多行,请问如何解决。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/25 11:09:00 [只看该作者]

1、execl文件本身有问题,20000多的空行,应该是曾经编辑过数据,然后去掉了,但是在execl里仍然被视为有效的行。在行号处选中这20000多的空行,整行删除掉,再导入

2、判断一下单元格数据,如果是就退出

For n As Integer = 5 To Sheet.Rows.Count -1
    Dim bh As String = sheet(n,0).Text
if bh = "借方累计笔数" then exit for

3、手工删除,或者看上面第1条

 回到顶部