Foxtable(狐表)用户栏目专家坐堂 → 关于Import() 导入excel 特定字段无法读取


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

主题:关于Import() 导入excel 特定字段无法读取

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


加好友 发短信
等级:婴狐 帖子:7 积分:128 威望:0 精华:0 注册:2018/5/10 14:28:00
关于Import() 导入excel 特定字段无法读取  发帖心情 Post By:2018/5/23 17:33:00 [只看该作者]

我在使用import()  导入excel的时候 发现  系统无法 将 
NO   
SYS_DATE  
MAKE_ID  
正常读取
如果设定成  SYS_DATE  NO MAKE_ID 放在excel 的第一列  就可以 读出来
但是如果是在 后面的行  
 SYS_DATE  就会 读成   0001-01-01 00:00:00
  NO  读成       0
  MAKE_ID  读成   0


求助一下  

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


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

你的excel文件发上来测试一下。

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


加好友 发短信
等级:婴狐 帖子:7 积分:128 威望:0 精华:0 注册:2018/5/10 14:28:00
  发帖心情 Post By:2018/5/23 18:04:00 [只看该作者]

加个QQ嘛  ok?    文件 不好吧  不方便 

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


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

以下是引用ckdxc在2018/5/23 18:04:00的发言:
加个QQ嘛  ok?    文件 不好吧  不方便 

 

删除敏感数据,然后发上来即可。只需要少量数据测试。


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


加好友 发短信
等级:婴狐 帖子:7 积分:128 威望:0 精华:0 注册:2018/5/10 14:28:00
  发帖心情 Post By:2018/5/23 19:02:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:test.png
图片点击可在新窗口打开查看
Dim dlg As New OpenFileDialog                                '--------定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx"                         '--------设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then                     '--------如果用户单击了确定按钮
    MessageBox.Show("你选择的是:" & dlg.FileName,"提示")     '--------提示用户选择的文件
Else
    Return
End If
Dim ip As New Importer                                       '--------定义输入
ip.SourcePath = dlg.FileName                                 '--------指定数据文件
ip.SourceTableName = "部门资料$"                             '--------指定要导入的表
ip.NewTableName ="DTTMP"                                     '--------导入后的表名
ip.Format = "Excel"                                          '--------设置导入格式
ip.Import()                                                  '--------EXCEL载入foxtable
Dim Cols_count As Integer = Tables("DTTMP").Cols.count       '--------定义数据表列数
Dim Rows_count As Integer = Tables("DTTMP").Rows.count       '--------定义数据表行数
Dim dr As DataRow
For i As Integer = 0 To Cols_count - 1                       '--------循环,写入到 TB_INFO
    dr = DataTables("NG_TABLE").AddNew()
    dr("Tbname") = "部门资料"
    dr("COLUMN_NAME") = Tables("DTTMP").Rows(1)(i)
    dr("COLUMN_CAPTION") = Tables("DTTMP").Rows(2)(i)
    dr("CHECK_FLAG") = False
    dr("IMPORT_FLAG") = True
Next i
Tables("DTTMP").Rows.Delete(0)                                 '--------删除第一行
Tables("DTTMP").Rows.Delete(0)                                 '--------删除第二行
Tables("DTTMP").Rows.Delete(0)                                 '--------删除第三行
DataTables("DTTMP").Save()
Rows_count = Tables("DTTMP").Rows.count                        '--------设置新的表行数
Dim dr1 As DataRow
For i As Integer = 0 To Rows_count - 1
    dr1 = DataTables("DEPT").AddNew()
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.xls

    dr1("NO") = Tables("DTTMP").Rows(i)("NO")
    dr1("NAME") = Tables("DTTMP").Rows(i)("NAME")
    dr1("DEP") = Tables("DTTMP").Rows(i)("DEP")
    dr1("UP") = Tables("DTTMP").Rows(i)("UP")
    dr1("USR") = Tables("DTTMP").Rows(i)("USR")
    dr1("SYS_DATE") = Tables("DTTMP").Rows(i)("SYS_DATE")
    dr1("MAKE_ID") = Tables("DTTMP").Rows(i)("MAKE_ID")
    dr1("NAME_PY") = Tables("DTTMP").Rows(i)("NAME_PY")
Next i
'---------------CHECK数据
Dim file As New System.IO.StreamWriter("D:\checklog.txt", True)
Dim drs2 As List(of DataRow)  = DataTables("DTTMP").SQLSelect("LEN(NAME) >= 15 or MAKE_ID not in (1,2,3) or LEN(NAME_PY) >= 15")
For Each dr2 As DataRow In drs2
    If(len(dr2("NAME"))>=15) Then
        file.WriteLine("ERROR" & "  " & Datetime.now & "  " & "NAME列" & dr2("F1") & "行")
    End If
    If(dr2("MAKE_ID")<>1 And dr2("MAKE_ID")<>2 And dr2("MAKE_ID")<>3) Then
        file.WriteLine("ERROR" & "  " & Datetime.now & "  " & "MAKE_ID列" & dr2("F1") & "行")
    End If
    If(len(dr2("NAME_PY"))>=15) Then
        file.WriteLine("ERROR" & "  " & Datetime.now & "  " & "NAME_PY列" & dr2("F1") & "行")
    End If
Next
file.Close()
Dim Builder As New ADOXBuilder
Builder.Open()
With Builder
    .DeleteTable("DTTMP")
End With
Builder.Close()
Syscmd.Project.Open(ProjectFile)                                      '--------重新加载项目

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


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

1、为什么要导入生成一个表,最后又删除?这不是多余吗?

 

2、如果要单纯导入数据,请参考

 

http://www.foxtable.com/webhelp/scr/0685.htm

 

http://www.foxtable.com/webhelp/scr/2334.htm

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=101056&skin=0

 


 回到顶部