使用狐表最新版本。之前一直都会报错,与版本无关的。
考勤数据比较保密,需要测试话,我可以联系客服发源码
1.报错截图:
此主题相关图片如下:2.png
此主题相关图片如下:3.png
错误所在事件:窗口,MainForm,Button1,Click
详细错误信息:
服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))
2.导入代码如下:'因为Excel Vba的缘故,用普通的狐表sheet方法导入,会导致日期列里的时间没有了,所以要用VBA和二维数组快速导入
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "excel文件|*.xlsx; *.xls" '设置筛选器
dlg.Title="请选择从钉钉导出的原始Excel数据"
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(3)
If Ws.Name ="原始记录" Then
Dim st As Date = Date.Now
Dim dt As DataTable = DataTables("原始记录")
dt.DataRows.Clear
Try
Dim Rg As MSExcel.Range = Ws.UsedRange
Dim ary = rg.value
'重点看这里,自己根据表格位置调整导入把---
Dim t As Table =Tables("原始记录")
t.StopRedraw
Dim pb As WinForm.ProgressBar = e.Form.Controls("ProgressBar1")
pb.Minimum = 0
pb.Maximum = rg.Rows.Count -4
pb.Value =0
pb.Visible =True
For n As Integer = 4 To rg.Rows.Count
Dim nr As Row = t.AddNew
nr("姓名") = ary(n,1)
nr("UserId") = ary(n,5)
nr("打卡时间") = ary(n,8)
nr("打卡结果") = ary(n,9)
If (n-4) Mod 10 = 0 Then
pb.Value = n-4
End If
Next
'重点看这里,自己根据表格位置调整导入把---
pb.Value = pb.Maximum
t.ResumeRedraw
dt.Save
t.AutoSizeCols
MessageBox.Show("导入成功,耗时: " & (Date.Now - st).TotalSeconds & "秒")
pb.Visible =False
Catch ex As Exception
MessageBox.Show("导入失败!原因:" & ex.message ,"提示")
Finally
App.Quit
End try
Else
MessageBox.show("该Excel表第三个工作簿名字不是'原始记录',不能导入")
End If
End If
[此贴子已经被作者于2019/12/19 9:19:04编辑过]