我正在创建一个控制台应用程序,该应用程序从Excel文件中随机选择问题和答案。以下是我的代码(一点都不完整)。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Excel = Microsoft.Office.Interop.Excel;namespace QuizMaker{ class Program { static void Main(string[] args) { int numCorrectA; int numTotalQ; decimal score; List<string> qArray = new List<string>(); List<string> aArray = new List<string>(); Excel.Application xlApp = new Excel.Application(); Excel.Workbook quizWorkbook = new xlApp.Workbooks.Open("-file location-"); //read random line from excel file for 6 questions //print out questions //console.readline() for the answers //check answers b ycomparing them //increment ints as needed //output results } }}因此,我是xlApp通过调用Application接口创建的,但是当我xlApp在下面的行中使用时,遇到了“是变量,但像类型一样使用”错误。在查找之后,接口似乎没有创建实例,所以这就是原因。但是,我试图创建另一个类来实现Excel.Application,但这是行不通的。我不知道要创建新的应用程序还需要做什么。
3 回答
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
在这行上:
Excel.Workbook quizWorkbook =新的xlApp.Workbooks.Open(“-文件位置-”);
删除new
关键字,因为这是试图从中创建实例的事情xlApp
。就像错误中所说的-您xlApp
是变量,而不是必须从中创建对象的类型。
的返回值xlApp.Workbooks.Open("-file location-");
将为Microsoft.Office.Interop.Excel.Workbook
。
一些更多的信息在这里。
有关变量和类型之间差异的信息,请点击此处。变量或多或少是类型的对象。
凤凰求蛊
TA贡献1825条经验 获得超4个赞
Excel.Application
是一个静态库。new
从打开工作簿的语句中删除。
顺便说一句,您可能想研究使用EPPlus。这是使用Excel文件的绝佳库。您可以从nuget获取它。
慕哥6287543
TA贡献1831条经验 获得超10个赞
在行中
Excel.Workbook quizWorkbook = new xlApp.Workbooks.Open("-file location-");
您Open
用new
运算符调用方法。因此,您实际上试图创建new Open()
无效的类的实例。你应该用
Excel.Workbook quizWorkbook = xlApp.Workbooks.Open("-file location-");
它甚至可以编译的原因是 C# 对待 com作为动态类型进行接口,在运行时求值,并且编译器不知道编译期间的状态。
- 3 回答
- 0 关注
- 490 浏览
添加回答
举报
0/150
提交
取消