我有以下类(class)。我从另一个程序中移过来创建一个 ClassLibary。
我在有 wb.Worksheeet 的任何地方都收到以下错误消息
无法将类型“对象”隐式转换为“Microsoft.Office.Interop.Excel.Worksheet”。存在显式转换(是否缺少强制转换?)
该类在原始程序中运行。我添加了引用 Inereop.Microsoft.Office.Interop.Excel
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Office.Interop.Excel;
using _Excel = Microsoft.Office.Interop.Excel;
public class Excel
{
string path = "";
_Application excel = new _Excel.Application();
Workbook wb;
Worksheet ws;
public Excel()
{
}
public Excel(string path, int sheet)
{
this.path = path;
wb = excel.Workbooks.Open(path);
ws = wb.Worksheets[sheet];
}
public void Open(string path, int sheet)
{
this.path = path;
wb = excel.Workbooks.Open(path);
ws = wb.Worksheets[sheet];
}
public void CreateNewFile()
{
this.wb = excel.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
this.ws = wb.Worksheets[1];
}
}
}
添加具有以下样式的显式类型转换:
ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[sheet];
对于显式转换,您必须确定目标类型。 In documentation据说 Worksheets-collection 可以同时包含 Charts 和 Worksheet 对象。
我是一名优秀的程序员,十分优秀!