以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  Dim ip As New Importer  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=174416)

--  作者:fvcfox
--  发布时间:2022/1/14 11:05:00
--  Dim ip As New Importer
使用导入表格的代码,如果电子表格有合并的单元格,在导入时会出错,要怎样防止出错
--  作者:有点蓝
--  发布时间:2022/1/14 11:13:00
--  
放到try里:http://www.foxtable.com/webhelp/topics/2070.htm
--  作者:fvcfox
--  发布时间:2022/1/14 11:35:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220114111726.png
图片点击可在新窗口打开查看

是以上的出错

try
    ip.Import()
Catch ex As Exception
    MessageBox.Show("导入的表格有问题, 请尝试只保留有用的数据行, 将合计行等没用行删除后再导入")
    Return
End Try
不起作用
[此贴子已经被作者于2022/1/14 11:38:51编辑过]

--  作者:有点蓝
--  发布时间:2022/1/14 11:43:00
--  
那就没有办法了。换种方式导入数据:http://www.foxtable.com/webhelp/topics/2334.htm
--  作者:fvcfox
--  发布时间:2022/1/15 14:06:00
--  
Dim Book As New XLS.Book("c:\\test\\订单.xls")
Dim 
Sheet As XLS.Sheet = Book.Sheets(0)
msgbox(Sheet.Rows.Count -1)
可以读取有效行,但msgbox(Sheet.cols.Count -1)并不是有效,而是255列,有办法读取有效列吗

--  作者:有点蓝
--  发布时间:2022/1/15 14:43:00
--  
正常都是有效列,不有效的原因一般是execl被编辑,或者其它软件导出的时候使用到了后面的列。

如果是手工编辑的execl,选中所有非有效列,删除一次即可。其它情况只能使用vba处理了,参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=92748

 

--  作者:fvcfox
--  发布时间:2022/1/15 16:17:00
--  
怎样在生成的临时表

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("产品", GetType(String), 32)
dtb.AddDef("客户", GetType(String), 32)
dtb.AddDef("数量", GetType(Integer))
dtb.AddDef("金额", GetType(Double))
dtb.Build()
MainTable
= Tables("统计")

DataColChanged写代码


--  作者:有点蓝
--  发布时间:2022/1/15 16:36:00
--  
到全局表事件处理:http://www.foxtable.com/webhelp/topics/0671.htm