使用隐式类型加载Excel文件

时间:2014-02-07 16:53:38

标签: c# file-io global-variables

class ExcelHandling
    {
        public static void NewExcelFile(){
            frmMain._frmMain.EXCEL_FILE = new Excel.Application();
            var excelApp = frmMain._frmMain.EXCEL_FILE as Excel.Application;
            excelApp.Workbooks.Add();
            excelApp.Visible = true;
        }

        public static void LoadExcelFile()
        {
            FileStream load = File.Open(@"F:\dsa.xlsx", FileMode.Open, FileAccess.Write);
            var excelApp = load as Excel.Application;
            frmMain._frmMain.EXCEL_FILE = excelApp;
            excelApp.Visible = true;
        }
    }

上面显示的LoadExcelFile()方法不起作用。

将现有excel文件加载到变量的正确方法是什么?我尝试过一些东西,但无济于事。 NewExcelFile()方法就像一个魅力 - 它创建一个新的Excel文件,将其存储到EXCEL_FILE全局变量中,以便我可以在此之后对其进行操作并显示它。我希望load函数执行相同的操作,但使用现有的excel文件。

2 个答案:

答案 0 :(得分:1)

以下是使用Microsoft.Interop库打开现有Excel电子表格的示例:

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);

过载参数在文档中相当模糊,但不幸的是需要。 Intellisense应该让你对价值观及其含义有所了解。

您的问题是您使用的是FileStream,然后尝试让图书馆找出该流所包含的内容。这将利用互操作库打开文件并正确处理数据。

答案 1 :(得分:0)

我真的很喜欢LinqToExcel。您可以在Visual Studio中使用NuGet包管理器添加它https://www.nuget.org/packages/LinqToExcel。文档是@ https://code.google.com/p/linqtoexcel/(带演示视频)