c#调用excel报错(异常来自HRESULT:0X80010105(RPC_SERVERFAULT))

方法一:可以设置 wk.Visible=true; 但是这种方法将excel打开了,展现效果不好。

方法二:在excel2007里,点击“office按钮”,点击“excel选项”,点开后点击“加载项”,在最下方下拉框中选择“COM加载项”,点击“转到”按钮,会弹出框,把里面pdf的加载项去掉,就OK了。


发布了5 篇原创文章 · 获赞 2 · 访问量 1万+
展开阅读全文

C#读excel出现异常 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))

04-05

C#操作excel出错:(异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))A03EC ``` private void OpenExcel(string strFileName) { object missing = System.Reflection.Missing.Value; Application excel = new Application(); if (excel == null) { Response.Write("<script>alert('Can't access excel')</script>"); } else { excel.Visible = false; excel.UserControl = true; // 以只读的形式打开EXCEL文件 Workbook wb = excel.Application.Workbooks.Open(strFileName, missing, true, missing, missing, missing, missing, missing, missing, true, missing, missing, missing, missing, missing); //取得第一个工作薄 Worksheet ws = (Worksheet)wb.Worksheets.get_Item(1); //取得总记录行数 (包括标题列) int rowsint = ws.UsedRange.Cells.Rows.Count; //得到行数 //int columnsint = mySheet.UsedRange.Cells.Columns.Count;//得到列数 //取得数据范围区域 (不包括标题列) Range rng1 = ws.Cells.get_Range("A1", "A" + rowsint); //item Range rng2 = ws.Cells.get_Range("B1", "B" + rowsint); //Customer object[,] arryItem = (object[,])rng1.Value2; //get range's value object[,] arryCus = (object[,])rng2.Value2; //将新值赋给一个数组 string[] arryA = new string[rowsint]; string[] arryB = new string[rowsint]; for (int i = 1; i <= rowsint; i++) { //Item_Code列 arryA[i - 1] = arryItem[i, 1].ToString(); //Customer_Name列 arryB[i - 1] = arryCus[i, 1].ToString(); } //Response.Write(arry[0, 0] + " / " + arry[0, 1] + "#" + arry[rowsint - 2, 0] + " / " + arry[rowsint - 2, 1]); } excel.Quit(); excel = null; Process[] procs = Process.GetProcessesByName("excel"); foreach (Process pro in procs) { pro.Kill();//没有更好的方法,只有杀掉进程 } GC.Collect(); } ``` 当 excel,visible = true 时可以正常运行,求解决。每次弹出来一个excel表接受不了呀=。= 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览