Foxtable(狐表)用户栏目专家坐堂 → 关于Maxlength的一个问题


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

主题:关于Maxlength的一个问题

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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
关于Maxlength的一个问题  发帖心情 Post By:2019/7/18 21:53:00 [只看该作者]

 我在导入一个EXCEL表格时出现3个问题,请教一下:

 

1,


图片点击可在新窗口打开查看此主题相关图片如下:无法设置列违法了maxlength.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看 该列的表结构是
图片点击可在新窗口打开查看  
 
 
  这是什么原因?


图片点击可在新窗口打开查看此主题相关图片如下:d`}`3qxj(9m{15i9ksi7bk.png
图片点击可在新窗口打开查看

问题2:EXCEL表格中有3列日期型列,只导入了一列数据,其他2列全是空列。

 

 

 

 

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:excel中三列日期型数据.png
图片点击可在新窗口打开查看

 

 

 

 


 


图片点击可在新窗口打开查看此主题相关图片如下:导入后只有一列日期型.png
图片点击可在新窗口打开查看

 

 

第三个问题:

 

EXCEL中有3000多条数据,只导入了234条数据,什么原因?

 

 


 

[此贴子已经被作者于2019/7/18 22:04:48编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2019/7/18 23:05:00 [只看该作者]

把这个excel导出为文本文件,在foxtable再导入此文本文件

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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2019/7/19 6:33:00 [只看该作者]

就是说导入或者合并EXCEL文件就是有这样的问题,没有办法解决么?只能转换为文本文件才可以?

 

Dim ip As New Importer
ip.SourcePath = "e:\保险\" '指定目录
ip.SourceTableName = "01月起保3384" '指定要导入的文件"订单.txt"
ip.NewTableName ="客户信息表" '导入后的表名
ip.Format = "Delimited" '指定导入格式
ip.Import()

 

 

我用了以上筛选器,又出现如下图的异常:

 

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:select与剧中又错误.png
图片点击可在新窗口打开查看

 

 


 

[此贴子已经被作者于2019/7/19 7:20:48编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2019/7/19 7:59:00 [只看该作者]

合并可以尝试用这个方法:
http://www.foxtable.com/webhelp/topics/2334.htm

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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2019/7/22 7:36:00 [只看该作者]

代码如下:

Dim  Book As New XLS.Book("e:\保险\01月起保3384.xlsx")
 Dim  Sheet As XLS.Sheet = Book.Sheets(0)
Tables("客户信息表").StopRedraw()
 '注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As  String = {"保单号","姓名","车牌号车架号后6位","厂牌型号","购置价","发动机号","登记日期","保险生效日","保险终止日","证件号","电话号码"}
 '注意下面的循环变量从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
           r(nms(m)) = Sheet(n,m).Value
     Next
 Next
 Tables("客户信息表").ResumeRedraw()

 

 

出现转换无效提示:

 

 

 

实例上传

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:示例.xlsx


图片点击可在新窗口打开查看此主题相关图片如下:转换无效.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/7/22 7:36:53编辑过]

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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/22 9:27:00 [只看该作者]

= {"保单号","姓名","车牌号车架号后6位","厂牌型号","购置价","发动机号","登记日期","保险生效日","保险终止日","证件号","电话号码"}

这里的标题名称和顺序必须和Foxtable表格的列名顺序完全一致

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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2019/7/24 6:46:00 [只看该作者]

尝试导入一个EXCEL表格,除了出现MAXLENGTH错误,还出现了格式转换错误。


图片点击可在新窗口打开查看此主题相关图片如下:无法设置列违法了maxlength.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:转换无效.png
图片点击可在新窗口打开查看

 

以前导入虽然也出现上述错误,但是还能导入部分记录,今天出现这些错误没有导入任何数据。


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


加好友 发短信
等级:一尾狐 帖子:459 积分:3471 威望:0 精华:0 注册:2011/6/6 11:22:00
  发帖心情 Post By:2019/7/24 7:39:00 [只看该作者]

对于导入excel文件,帮助文件中建议合并数据时,要求table中的列必须与excel文件的列名称保持一致,否则会出错,建议通过自己写代码的方式导入excel文件的数据,可以参考下面的代码:

'定义字典,通过字典得到table表中的字段与excel表中列的位置的对应关系
Dim zd As New Dictionary(Of String,Integer)
Dim Book As New XLS.Book("C:\我的待办 .xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For Each cl As Col In Tables("代办明细").Cols
    For c As Integer = 0 To Sheet.Cols.Count -1 '判断列标题
        If Sheet(0, c).Value = cl.Name Then
            zd.Add(cl.Name,c)
        End If
    Next
Next
If zd.ContainsKey("_Identify") = True Then '是否存在
    zd.Remove("_Identify")
End If
Tables("代办明细").StopRedraw()

'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim r As Row = Tables("代办明细").AddNew()
    
    For Each k As String In zd.Keys '轮询所有的键值
        r(k) = Sheet(n,zd(k)).Value
    Next
    
Next
Tables("代办明细").ResumeRedraw()

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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2019/7/25 6:42:00 [只看该作者]

感谢回复,目前导入excel文件字段名称顺序一致,总是出现不能定义某列,应为其宽度超出了该列MAxlength。我定义的列宽是文本型60。问题出在哪儿。当关闭若干这样的出错对话框后,一般能导入几十条记录,绝大多数记录没有导入。
[此贴子已经被作者于2019/7/25 6:50:30编辑过]

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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/25 9:33:00 [只看该作者]

有问题的execl文档发上来测试

 回到顶部
总数 14 1 2 下一页