无法隐式转换类型“object”为“Microsoft.Office.Interop.Excel.Worksheet”。存在显式转换(是否缺少转换?)

10

这里我正在打开Excel并向Excel表中写入内容。 我将我的Windows应用程序更改为ASP网站,然后看到了这个错误。 我已经添加了所有的引用和库,不知道我错过了什么。

如下所述,出现了错误。 请帮帮我。

    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

    }

2
你是否缺少一个转换?是的。永远不要在 Web 服务器上运行 Excel。 - Hans Passant
2个回答

13

您需要通过提供WorkSheet名称,使用Sheets数组创建新的工作表。

并且请将新创建的WorkSheet进行强制类型转换。

用此替换:

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

随后跟着的是

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

1
为了解决您的第二个错误,
// .Value2处发生错误
  1. 进入项目属性。(单击菜单中的“项目”,单击“属性”)
  2. 将目标框架设置为.NET Framework 4
  3. 这应该可以解决您的.Value2错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接