以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 有一台电脑导入excel会报错。服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT)) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144401) |
-- 作者:chen37280600 -- 发布时间:2019/12/19 9:18:00 -- 有一台电脑导入excel会报错。服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT)) 使用狐表最新版本。之前一直都会报错,与版本无关的。 考勤数据比较保密,需要测试话,我可以联系客服发源码 1.报错截图: 错误所在事件:窗口,MainForm,Button1,Click 详细错误信息: 服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT)) \'因为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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/12/19 9:43:00 -- 这种一般是系统的问题,和程序无关:https://www.baidu.com/baidu?word=0x80010105 |