以文本方式查看主题 - 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=186928) |
-- 作者:moseser -- 发布时间:2023/6/8 19:55:00 -- 导入excel时,如何防止空内容导入 Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter = "Excel文件|*.xls|excel文件|*.xlsx" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 MessageBox.Show(1) \'文件的地址: dlg.FileName Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("合同台账.签约价格").StopRedraw() \'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致 Dim nms() As String = {"物资名称", "规格型号", "计量单位", "暂定数量", "采购单价", "是否含税", "税率", "固定单价", "是否为资产"} \'注意下面的循环变量从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 MessageBox.Show(Sheet(n, m).Value) r(nms(m)) = Sheet(n, m).Value Next Next Tables("合同台账.签约价格").ResumeRedraw() End If 举例: 我的表格内容,一共有3行,第一行为标题行,另外两个为内容行,导入的时候,软件将后面的红白行业导入了,如何避免? |
-- 作者:有点蓝 -- 发布时间:2023/6/8 20:18:00 -- For n As Integer = 1 To Sheet.Rows.Count - 1 if Sheet(n, 0).text > "" then Dim r As Row = Tables("合同台账.签约价格").AddNew() For m As Integer = 0 To nms.Length - 1 MessageBox.Show(Sheet(n, m).Value) r(nms(m)) = Sheet(n, m).Value Next end if Next
|
-- 作者:chnfo -- 发布时间:2023/6/8 22:04:00 -- 如果在excel表中本来就已经把非数据区域的所有格式都清空,可以考虑使用usedrange |