2011-12-23 147 views
0

我想从我的C#代码打开一个Excel文件。用vba代码打开Excel工作簿 - 错误通知VSTO

workBook = workBooks.Open(fileName,    //filename 
          0,      //updatelinks 
          true,     //readonly 
          5,      //format 
          "",      //password 
          "",      //WriteResPassword 
          true,     //IgnoreReadOnlyRecommended 
          XlPlatform.xlWindows, //Origin 
          "\t",     //Delimiter 
          false,     //Editable 
          false,     //Notify 
          0,      //Converter 
          true,     //AddToMru 
          1,      //Local 
          0);      //CorruptLoad 

我看到代码挂在workBooks.Open如果Excel里面出现了一些错误。 我已经保持显示属性为true,那是当我发现在Excel中有错误。在进一步的调查中,我得知这个错误是由于某些失败的excel代码导致的。我的要求是如何让我的C#代码得到关于此的通知,以便它可以忽略文件内的错误或忽略文件本身?

+0

对于不熟悉的人来说,可能有一些'// comments'内联来描述400个参数中的每一个是什么意思?当然不是你的错,但是呃,这是一些签名...... – Yuck 2011-12-23 13:38:52

+0

在具有命名参数的.Net4中,你可以更好地传递参数,interop真的很丑:(反正这不会抛出任何异常吗? ? – 2011-12-23 13:43:10

+0

@Saeed,谢谢..Interop确实非常丑陋,我正在为它挣扎,它没有抛出任何异常,只是挂起!!!你有什么想法如何在4.0中做到这一点,我相信它会在内部使用Interop,但如果能够以一种干净的方式管理它,将会非常高兴!!! – Nishant 2011-12-23 13:47:50

回答

1

你试着做什么?也许只是使用Microsoft Open XML SDK就足够了?
您可以使用它读取,创建和编辑Excel文件。

+0

我想获取excel文件中的所有命名区域。 Open XML有可能吗? – Nishant 2011-12-23 13:56:25

+0

http://msdn.microsoft.com/en-us/library/gg294173.aspx – Remy 2011-12-23 14:05:54

相关问题