以文本方式查看主题 - 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=105530) |
-- 作者:jackchan120925 -- 发布时间:2017/8/21 22:27:00 -- 不规则excel表格导入 老师请教下,想要导入如图所示的不规则的excel表格,入下图。利用如下代码 Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "excel文件|*.xlsx; *.xls" \'设置筛选器 Dim dr As DataRow If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("阿里1688明细表").StopRedraw() \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题 For n As Integer = 1 To Sheet.Rows.Count -1 Dim r As Row = Tables("阿里1688明细表").AddNew() r("订单编号") = sheet(n,0).text Next Tables("阿里1688明细表").ResumeRedraw() End If DataTables("阿里1688明细表").save 测试导入第一列,结果如下图。也就是合并单元格只导入一样。那么想要得到如果所示的结果,该如何操作呢?非常感谢。 此主题相关图片如下:需要导入的不规则表格.jpg 此主题相关图片如下:得到的结果.jpg 此主题相关图片如下:想要的结果.jpg |
-- 作者:有点蓝 -- 发布时间:2017/8/21 22:47:00 -- 导入后做个循环赋值 For i As Integer = 1 To Tables("表A").Rows.Count - 1 Dim r As Row = Tables("表A").Rows(i) If r.IsNull("订单编号") Then r("订单编号") = Tables("表A").Rows(i-1)("订单编号") Next |
-- 作者:jackchan120925 -- 发布时间:2017/8/22 8:44:00 -- 这个表的订单会每天积累,后期数量会很大,这样在每次执行循环复制,计算量会不会很大,效率会不会受到影响呢? |
-- 作者:有点甜 -- 发布时间:2017/8/22 10:45:00 -- 以下是引用jackchan120925在2017/8/22 8:44:00的发言:
这个表的订单会每天积累,后期数量会很大,这样在每次执行循环复制,计算量会不会很大,效率会不会受到影响呢?
效率应该是没问题的。你还可以针对只是新增的行才修改。
只有这种方法了,没有别的方法。
|
-- 作者:jackchan120925 -- 发布时间:2017/8/22 20:57:00 -- 好的谢谢,针对新增行来执行,能减少相当大的计算量了 |
-- 作者:jackchan120925 -- 发布时间:2017/8/22 21:45:00 -- 还想请问下,如果我希望把空的行删除,而不是用合并单元格的订单来填充,用以下代码,思路是否正确呢? 我测试了下,只删除一半的订单编号为空白的行,不知问题出在何处。 导入后做个循环赋值 For i As Integer = 1 To Tables("表A").Rows.Count - 1 Dim r As Row = Tables("表A").Rows(i) If r.IsNull("订单编号") Then r.delete Next |
-- 作者:有点蓝 -- 发布时间:2017/8/22 21:51:00 -- 麻烦以后把代码格式一下,方便你我他!! 删除要倒序 For i As Integer = Tables("表A").Rows.Count - 1 To 0 Dim r As Row = Tables("表A").Rows(i) If r.IsNull("订单编号") Then r.delete Next 或者直接删除即可 DataTables("表A").DeleteFor("订单编号 is null")
|
-- 作者:jackchan120925 -- 发布时间:2017/8/22 21:59:00 -- 非常感谢,下次修正代码格式 |
-- 作者:jackchan120925 -- 发布时间:2017/8/22 22:05:00 -- 还有个问题请教 效率应该是没问题的。你还可以针对只是新增的行才修改。-------我该如何界定新增的行呢?或者说获得新增行的一个集合呢? |
-- 作者:有点蓝 -- 发布时间:2017/8/22 22:12:00 -- 参考:http://www.foxtable.com/webhelp/scr/0428.htm |