Dim tbmc As String = "公安未带头盔_预警列表"
Dim fl As String
Dim dlg As New OpenFileDialog
dlg.Filter = "Excel2003文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
If MessageBox.Show("是否导入?","请确认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then
DataTables(tbmc).StopRedraw
Dim App As New MSExcel.Application
try
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.UsedRange
Dim ary = rg.value
Forms("导数进度条").Open
Dim prb As WinForm.ProgressBar =Forms("导数进度条").Controls("ProgressBar1")
prb.Maximum = rg.Rows.Count
Dim nms() As String = {"地市", "层级", "预警地址", "设备编码", "预警类型", "告警时间", "布控名称", "状态", "告警图片"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
Dim r As Row
For n As Integer = 2 To rg.Rows.Count
prb.Value = n
r = Tables(tbmc).AddNew
For m As Integer = 0 To Tables(tbmc).Cols.Count - 4 '减去相对-excel列多出列数-1
If m = 8 Then
fl= ProjectPath & "Attachments\" & r("设备编码") & n & ".jpg"
'MessageBox.Show(fl)
If ary(n, m + 1).SaveImage(fl) Then '如果照片保存成功
r("告警图片") = fileSys.GetName(fl)
End If
Else
r(nms(m)) = ary(n, m + 1)
End If
Next
Next
DataTables(tbmc).Save
Forms("导数进度条").Close
MessageBox.Show("导入成功!","恭喜!")
catch ex As exception
msgbox(ex.message)
MessageBox.Show("导入失败!","恭喜!")
finally
DataTables(tbmc).ResumeRedraw
app.quit
End try
Else
Return
End If
End If
[此贴子已经被作者于2024/5/16 9:33:21编辑过]