Foxtable(狐表)用户栏目专家坐堂 → 有一台电脑导入excel会报错。服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))


  共有3869人关注过本帖树形打印复制链接

主题:有一台电脑导入excel会报错。服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))

帅哥哟,离线,有人找我吗?
chen37280600
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1279 积分:7953 威望:0 精华:4 注册:2017/12/31 14:53:00
有一台电脑导入excel会报错。服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))  发帖心情 Post By:2019/12/19 9:18:00 [只看该作者]

使用狐表最新版本。之前一直都会报错,与版本无关的。
考勤数据比较保密,需要测试话,我可以联系客服发源码

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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110587 积分:562831 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/19 9:43:00 [只看该作者]


 回到顶部