C# Workbooks.Open()无法打开Excel文件

qq_17528627 2016-06-03 04:07:01
请问我的如下代码出现什么问题,为什么不能打开Excel文件,请解救,不甚感激。

class Program
{
static void Main(string[] args)
{
Excel.Application xlApp = new Excel.Application();
Excel.Workbook workbook = null;
string str = @"‪‪‪E:\test.xlsx";

try
{
workbook = xlApp.Workbooks.Open(str);
Console.WriteLine("Succeed");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{

xlApp.Quit();
if (workbook != null)
{
workbook.Close(null, null, null);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
workbook = null;
}
if (xlApp != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
xlApp = null;
}
GC.Collect();
}
Console.ReadLine();


}
}

结果出现如下问题:
...全文
3528 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
提示已经告诉你了,其实没有叫做“?E"这么一个磁盘卷。
WorldMobile 2018-12-04
  • 打赏
  • 举报
回复
看提示信息,代码应该出在:string str = @"‪‪‪E:\test.xlsx";

怀疑你的这个字符串里有乱码

试试这个

string str = @"E:\test.xlsx";
0 1看天下 2018-12-04
  • 打赏
  • 举报
回复
跟文件名 。xlsx 有关系吗
eHuaYangNianHua 2017-01-21
  • 打赏
  • 举报
回复
检查一下文件路径,我试的时候发现换了个文件名怎么打都打不开,考在debug目录下的除了一个和my documents目录下面的同名能打开以外。这是c#的一个bug吧,后来看了一下.path发现的这个问题。欢迎加qq交流 6197805
门外的码农 2016-12-08
  • 打赏
  • 举报
回复
引用 5 楼 bigbaldy 的回复:
[quote=引用 4 楼 fanlibin0623 的回复:] 有没大神啊?Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); Workbook wBook = null; Worksheet wSheet = null; object oMissiong = System.Reflection.Missing.Value; wBook = app.Workbooks.Open(excelFileName, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong); wSheet = wBook.Worksheets.get_Item(1);//读取第一张表 我在执行到app.Workbooks.Open时就报错,报错提示是服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))。。求解!!!谢谢
把Microsoft.Office.Interop.Excel的Visible设置为true,我之前也没遇到这个问题。但win10升级到红石版本后就这样了,必须可见才能打开,不知是否有更好的解决办法[/quote] 将Microsoft.Office.Interop.Excel的Visible设置为true能解决问题,奇怪的是后来重新设为false也能正常运行,不知根源在哪里 (另外当时我是用PB通过OLE操作excle)
xhk008 2016-11-14
  • 打赏
  • 举报
回复
引用 7 楼 xuanbg 的回复:
换NPOI来处理Excel吧,用起来很简单,速度超快,兼容2003和2007两种格式,不依赖Office。
NPOI是第三方?
charles_cn 2016-11-13
  • 打赏
  • 举报
回复
楼上的兄弟,你app.Workbooks.Open时就报错的问题解决了没有?我也遇到了和你一样的问题,好几天了至今未解决。
software_artisan 2016-11-13
  • 打赏
  • 举报
回复
换NPOI来处理Excel吧,用起来很简单,速度超快,兼容2003和2007两种格式,不依赖Office。
bigbaldy 2016-11-01
  • 打赏
  • 举报
回复
引用 4 楼 fanlibin0623 的回复:
有没大神啊?Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); Workbook wBook = null; Worksheet wSheet = null; object oMissiong = System.Reflection.Missing.Value; wBook = app.Workbooks.Open(excelFileName, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong); wSheet = wBook.Worksheets.get_Item(1);//读取第一张表 我在执行到app.Workbooks.Open时就报错,报错提示是服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))。。求解!!!谢谢
把Microsoft.Office.Interop.Excel的Visible设置为true,我之前也没遇到这个问题。但win10升级到红石版本后就这样了,必须可见才能打开,不知是否有更好的解决办法
羽同学丶 2016-11-01
  • 打赏
  • 举报
回复
有没大神啊?Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); Workbook wBook = null; Worksheet wSheet = null; object oMissiong = System.Reflection.Missing.Value; wBook = app.Workbooks.Open(excelFileName, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong); wSheet = wBook.Worksheets.get_Item(1);//读取第一张表 我在执行到app.Workbooks.Open时就报错,报错提示是服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))。。求解!!!谢谢
ayforver 2016-08-31
  • 打赏
  • 举报
回复
应该是权限问题
zbdzjx 2016-06-03
  • 打赏
  • 举报
回复
你将“string str = @"‪‪‪E:\test.xlsx";”这一句复制到记事本中,用光标从左移到右,就会发现,在"和E中间,有不可见字符。就是因为这个原因,导致打不开文件。
  • 打赏
  • 举报
回复
试试这个代码吧
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
            Workbook wBook = null;
            Worksheet wSheet = null;
            object oMissiong = System.Reflection.Missing.Value;
            wBook = app.Workbooks.Open(excelFileName, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong,
                    oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong);
                wSheet = wBook.Worksheets.get_Item(1);//读取第一张表  

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧