以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 高速合并EXCEL表数据时报错? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=142510) |
-- 作者:wangj6666 -- 发布时间:2019/10/29 13:16:00 -- 高速合并EXCEL表数据时报错? 各位专家:您们好! 高速合并EXCEL表格数据时,提示如下错误: .NET Framework 版本:2.0.50727.8943 Foxtable 版本:2018.10.9.1 错误所在事件: 详细错误信息: 从字符串“”到类型“Double”的转换无效。 输入字符串的格式不正确。 请问是什么地方有问题?要如何解决?
|
-- 作者:WELOVEFOX -- 发布时间:2019/10/29 13:40:00 -- 从字符串“”到类型“Double”的转换无效 |
-- 作者:WELOVEFOX -- 发布时间:2019/10/29 13:44:00 -- 如果不是新手低级列类型导入内容不符,坛里老师就会要你上传项目例子及合并文件了 |
-- 作者:有点蓝 -- 发布时间:2019/10/29 14:01:00 -- 接收数据的列应该是双精度,而导入的execl对应的列应该没有值,然后单元格被设置为字符模式了,所以导入的execl组件会把空值当做空字符串处理,空字符串转换为双精度就是这种错误。 |
-- 作者:wangj6666 -- 发布时间:2019/10/29 14:05:00 -- 是的,我的数据列有设置“双精度小数”的。专家就是专家,诊断正确。 |
-- 作者:wangj6666 -- 发布时间:2019/10/29 14:17:00 -- 代码合并时,如何设置为不固定的EXCEL表单名称?每次可以选择的表单名称进行导入呢!因为这的每次导入时的表单名称都有不一样,但格式是一样的。 |
-- 作者:有点蓝 -- 发布时间:2019/10/29 14:23:00 -- 是指execl文件的名称?还是指execl里sheet的名称? |
-- 作者:wangj6666 -- 发布时间:2019/10/29 16:45:00 -- 有excel的名称。 |
-- 作者:有点蓝 -- 发布时间:2019/10/29 16:54:00 -- 没看懂,截图说明一下 |
-- 作者:wangj6666 -- 发布时间:2019/10/29 17:15:00 -- 我参照上面的方法设置了代码: Dim Book As New XLS.Book("C:\\Users\\wangj\\Desktop\\设备设施请修确认单.xls") Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("设备设施请修").StopRedraw() Dim nms() As String = {"审批编号","标题","审批状态","审批结果","发起时间","完成时间","耗时(时:分:秒)","发起人工号","发起人UserID","发起人姓名","发起人部门","历史审批人姓名","审批记录","当前处理人姓名","申请类别","设备名称及编号","申请日期","完成日期","所属部门","维修片区","故障描述及解决办法","工时核算","维修人员","个人工时","工时单价元","工时费用","材料核算","配件名称","规格型号","数量","单价元","合计金额","是否影响生产","影响生产时间(小时)"} For n As Integer = 1 To Sheet.Rows.Count -1 Dim bh As String = sheet(n,0).Text Dim dr As DataRow = DataTables("设备设施请修").Find("审批编号 = \'" & bh & "\'") If dr Is Nothing Then \'如果不存在同审批编号的设备设施请修确认单 dr = DataTables("设备设施请修").AddNew() End If For m As Integer = 0 To nms.Length - 1 dr(nms(m)) = Sheet(n,m).Value Next Next Tables("设备设施请修").ResumeRedraw() 点击执行时,提示如下错误: |