以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  EXCEL导入  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=175697)

--  作者:lisangyu
--  发布时间:2022/3/15 20:37:00
--  EXCEL导入

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.OK Then

Dim Book As New XLS.Book(dlg.FileName)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("答案").StopRedraw()
\'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"试题号","题型","题目","分类","选择题_A","选择题_B","选择题_C","选择题_D","判断题_A","判断题_B","正确答案"}
\'注意下面的循环变量从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()
End If
导入的 excel文件以及导入后的数据如下:(数据错位了
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看
[此贴子已经被作者于2022/3/15 20:38:04编辑过]

--  作者:有点蓝
--  发布时间:2022/3/15 21:15:00
--  
有合并的单元格的原因,试试

Dim nms() As String = {"试题号","题型","题目",“”,“”,“”,"分类","选择题_A","选择题_B","选择题_C","选择题_D","判断题_A","判断题_B","正确答案"}
\'注意下面的循环变量从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
if nms(m) > "" then
         r(nms(m)) = Sheet(n,m).Value
end if
    Next
Next