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文件。
答案 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/(带演示视频)