导入到Excel不起作用

时间:2012-07-25 16:45:50

标签: c# .net excel office-interop visual-studio-lightswitch

我正在使用Office Integration Pack

正确遵循指示后,我仍然无法使Excel导入正常工作

我的 Visual Studio Lightswitch 2011应用程序配置为在IIS服务器上托管并使用 Easy Shell (因此它是MS提供的默认Shell)。

到目前为止,我尝试过调用

OfficeIntegration.Excel.Import(
   this.States, 
    @"C:\Users\Mr_Mia_Gie\My Documents\ExcelSheet.xls", 
    "Sheet1", 
   "A1:C3"); 

在按钮的_Execute event上(该按钮不在Shell命令栏上)

我得到的例外是"对象变量或未设置块变量。"

任何解决方案或建议都将受到高度赞赏

干杯

3 个答案:

答案 0 :(得分:2)

我同意Nevyn(并且我已经对他的答案进行了表决,但是它作为编辑嵌入在问题中,所以我不能)。

正如Nevyn所指出的,在该特定代码行中实际上只有三个对象可以导致 null异常

  • OfficeIntegration 对象
  • OfficeIntegration.Excel 对象
  • 或者 this.States 集合(不太可能)

正如您也指出的那样,很可能其中一个对象未​​正确初始化。您需要通过在该行上放置一个断点来检查这三个对象的值是什么。检查他们的价值实际上是什么。

您还可以在代码中放置一个保护条款(就在该行上方):

if(OfficeIntegration == null)|| (OfficeIntegration.Excel == null)return;

它不会“修复”问题,但它会阻止null异常的发生(但这不应该是 Execute 方法中的问题)。但是,在任何时候使用保护条款 来引用一个值为null的对象是一种很好的编程实践。

如果不这样,我们任何人都可以给你的唯一其他建议是在画廊页面的问题部分发布一个问题,你从那里下载了扩展程序。扩展程序的autor应该能够帮助你。

答案 1 :(得分:0)

这是一个Web应用程序,如果是这样,我认为它不支持它。它需要扩展。我为你挖了一篇文章,试试看:

http://blogs.msdn.com/b/lightswitch/archive/2011/04/13/how-to-import-data-from-excel.aspx

答案 2 :(得分:0)

Office集成包适用于Visual Studio LightSwitch Windows应用程序,适用于IIS上托管的应用程序,因此以下代码抛出异常

OfficeIntegration.Excel.Import(
   this.States, 
    @"C:\Users\Mr_Mia_Gie\My Documents\ExcelSheet.xls", 
    "Sheet1", 
   "A1:C3"); 

链接显示扩展程序不支持LS WebBrowser应用程序http://officeintegration.codeplex.com/discussions/374585

扩展从Excel导入数据也适用于在webbrowser中运行的IIS托管LS应用程序