簡體   English   中英

Excel Interop“新建”對象

[英]Excel Interop “New Up” objects

我正在開發一個MVC應用程序,用戶可以在其中上載excel文檔並輸出HTML,但是我在使用Interop庫時遇到了一些困難,希望有人能提供幫助。

為了使這一過程非常簡單,我已經達到了一個要實例化或“新建”工作表並使用所選工作表的ID的階段。 用戶已經選擇了他們希望使用的工作表,但是似乎沒有任何方法可以這樣做。

我嘗試過諸如workbookModel.workbook.Sheets.get_Item(1);代碼workbookModel.workbook.Sheets.get_Item(1); 這應該獲取模型中的當前工作簿並獲取ID為1的工作表-我認為這是基於1的索引,而不是基於0的索引。 請記住,因此上面的代碼中有一些viewModels在起作用,但是我在這里真正要做的只是Workbook work = new Workbook().Sheets.get_Item(1);

我也嘗試過Workbook work = new Workbook().Worksheets.get_Item(1); 萬一我不正確地使用工作表而不是工作表,但我不這么認為。

但是我嘗試過的任何方法似乎都無效。

如果有人可以向我指出正確的方向,將不勝感激,如果這沒有任何意義,並且您需要更多信息,請告訴我。

非常感謝

首先,Interop僅在運行excel應用程序時才有效。

因此,如果您沒有運行它,則需要:

Application ExcelApp = new Application();

要從應用程序獲取工作表,首先需要工作簿。 您可以使用以下之一獲取工作簿:

//to get the first workbook of an application
Workbook MyBook = ExcelApp.Workbooks[1];

//to get a workbook by name
Workbook MyBook = ExcelApp.Workbooks["bookname"];

//to open a workbook from a xls file
Workbook MyBook = ExcelApp.Workbooks.Open(name and other parameters);

//to add a new workbook to the application
Workbook MyBook = ExcelApp.Workbooks.Add(optional template);

請注意,沒有正在運行的應用程序,工作簿將不存在,而沒有父工作簿的工作表也將不存在。

要從工作簿中獲取工作表,您需要對其進行強制轉換,因為它as object

//to get an existing sheet
Worksheet MySheet = (Worksheet)MyBook.Worksheets["sheetname"];

//to create a new sheet
Worksheet MySheet = (Worksheet)MyBook.Worksheets.Add(some parameters);

但是,如果您可以設法從工作表中獲取名稱以使用鏈接填充視圖,則可以存儲這些工作表實例並將其傳遞給創建html的方法。 或將它們存儲在全局變量中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM