Cannot implicitly convert type 'object' to 'Microsoft.Office.Interop.Excel.Worksheet'. An explicit conversion exists (are you missing a cast?)

 ̄綄美尐妖づ 提交于 2019-12-19 06:05:32

问题


Here I'm opening excel and writing to excel sheet. I'm changing my windows application to asp website and seen this error. I have added all the references and libraries. Don't know what I am missing here.

Getting error as mentioned below. Please help me.

    Excel.Application excel = new Excel.Application();
    excel.Visible = false; // to hide the processing 
    Excel.Workbook wb = excel.Workbooks.Add();
    Excel.Worksheet sh = wb.Sheets.Add(); // Error at wb


    sh.Name = "Links";

    for (int i = 1; i < list.Count; i++)
    {
        sh.Cells[i.ToString(), "A"].Value2 = list[i]; //Error at .Value2

    }

回答1:


you have to create a new Worksheet with Sheets array by providing WorkSheet Name. and also please Cast The Newly Created WorkSheet.

Replace this :

Excel.Worksheet sh = wb.Sheets.Add();

with following

 Excel.Worksheet sh  = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets["Sheet1"];



回答2:


To resolve your second error,

//Error at .Value2

  1. Go to project properties. (Click Project in Menu, Click properties)
  2. Set the Target Framework as .NET Framework 4
  3. This should resolve your .Value2 error.


来源:https://stackoverflow.com/questions/19888326/cannot-implicitly-convert-type-object-to-microsoft-office-interop-excel-works

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!