Foxtable(狐表)用户栏目专家坐堂 → 导入excel时,如何防止空内容导入


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

主题:导入excel时,如何防止空内容导入

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


加好友 发短信
等级:三尾狐 帖子:622 积分:5303 威望:0 精华:0 注册:2022/4/4 14:42:00
导入excel时,如何防止空内容导入  发帖心情 Post By:2023/6/8 19:55:00 [只看该作者]

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog 
dlg.Filter = "Excel文件|*.xls|excel文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    MessageBox.Show(1)
    '文件的地址: 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 = 1 To Sheet.Rows.Count - 1
        Dim r As Row = Tables("合同台账.签约价格").AddNew()
        For m As Integer = 0 To nms.Length - 1
            MessageBox.Show(Sheet(n, m).Value)
            r(nms(m)) = Sheet(n, m).Value
        Next
    Next
    Tables("合同台账.签约价格").ResumeRedraw()
End If


举例: 我的表格内容,一共有3行,第一行为标题行,另外两个为内容行,导入的时候,软件将后面的红白行业导入了,如何避免?





 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111407 积分:567105 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/6/8 20:18:00 [只看该作者]

    For n As Integer = 1 To Sheet.Rows.Count - 1
if Sheet(n, 0).text > "" then
        Dim r As Row = Tables("合同台账.签约价格").AddNew()
        For m As Integer = 0 To nms.Length - 1
            MessageBox.Show(Sheet(n, m).Value)
            r(nms(m)) = Sheet(n, m).Value
        Next
end if
    Next

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


加好友 发短信
等级:九尾狐 帖子:2247 积分:18514 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2023/6/8 22:04:00 [只看该作者]

如果在excel表中本来就已经把非数据区域的所有格式都清空,可以考虑使用usedrange

 回到顶部