使用Interop.Excel打开Excel文档。加载的工作表太少

时间:2011-03-22 15:17:19

标签: c# excel-interop

我遇到了Microsoft.Office.Interop.Excel api的问题(使用C#)。一旦我使用下面显示的方法加载现有的.xls文件,然后请求一个特定的工作表,我知道.xls文件中存在一个事实,我只是得到一个例外。

我加载的.xls文件很大,并且有大约35个工作表,但奇怪的是,似乎只加载了文档的前3个工作表。

//Code to load document
var xlApp = new Microsoft.Office.Interop.Excel.Application();
var xlWorkBook = xlApp.Workbooks.Open("PathAndNameOfMyFile.xls", 0, true, 5, "", "", true,    Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);

//code that fails or just returns bad ansvers:
//This code just returns a list of 3 worksheets
var test = xlWorkBook.Worksheets.Cast<Worksheet>().ToList();

//The first 3 worksheets loads fine, but not the fourth:
var sheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);//ok
    sheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);//ok
    sheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(3);//ok
    sheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(4);//fails

//also the command xlWorkBook.Worksheets.Count returns 3. 

所以有人都知道为什么会这样吗?任何想法都会受到高度赞赏。

更新:当打开xls文件时,我发现它实际上似乎是excel interop在xls文件中打开引用的xla文件。如果是这种情况,那就可以解释为什么工作表的数量返回错误 - 以前有人见过这种行为吗?

0 个答案:

没有答案