Foxtable(狐表)用户栏目专家坐堂 → [求助] 导入Excel文件时显示非法文件格式


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

主题:[求助] 导入Excel文件时显示非法文件格式

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


加好友 发短信
等级:六尾狐 帖子:1347 积分:9817 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助] 导入Excel文件时显示非法文件格式  发帖心情 Post By:2018/5/10 13:40:00 [只看该作者]

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2018.3.9.1
错误所在事件:窗口,PCBA-BOM,But导入,Click
详细错误信息:
非法文件格式。

If e.Form.Controls("DropBox1").text > "" Then
    Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
    dlg.Filter= "Excel文件|*.xls;*.xlsx" '设置筛选器
    dlg.InitialDirectory =  "d:\king\"
   
    If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
        e.Form.Controls("But生成表").performclick
        Dim tb As Table = Tables(Vars("TbName"))

        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        Dim Book As New XLS.Book(dlg.FileName)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)
        tb.StopRedraw()
        '注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
        Dim nms() As String = {"Comment","Footprint","Quantity"}
        '注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
        For n As Integer = 1 To Sheet.Rows.Count -1
            Dim r As Row = tb.AddNew()
            For m As Integer = 0 To nms.Length - 1
                r(nms(m)) = Sheet(n,m).Value
            Next
        Next
        tb.ResumeRedraw()       
       
        '------------------------------------------------------------
        e.Form.Controls("But生成物料").performclick
    Else
        Exit Sub
    End If
Else
    MessageBox.Show("请输入产品或半成品代码后再导入")
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/10 14:40:00 [只看该作者]

1、单独测试代码

 

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx" '设置筛选器
dlg.InitialDirectory =  "d:\king\"
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim tb As Table = Tables(Vars("TbName"))
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    tb.StopRedraw()
    '注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
    Dim nms() As String = {"Comment","Footprint","Quantity"}
    '注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim r As Row = tb.AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next
    Next
    tb.ResumeRedraw()
   
End If

 

2、如果还是有问题,excel文件发上来测试

 

 


 回到顶部