我正在创建一个控制台应用程序,可以从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,但这不起作用。我不明白为了让我创建一个新的应用程序我还需要做什么。
答案 0 :(得分:1)
在这一行:
Excel.Workbook quizWorkbook = new xlApp.Workbooks.Open(&#34; -file 位置 - &#34);
删除new
关键字,因为这是尝试从xlApp
创建实例的事情。正如错误所述 - 您的xlApp
是一个变量,而不是您必须从中创建对象的类型。
xlApp.Workbooks.Open("-file location-");
的返回值为Microsoft.Office.Interop.Excel.Workbook
。
更多info here。
关于变量和类型之间差异的信息 - here。或多或少变量是 type 的对象。
答案 1 :(得分:0)
Excel.Application
是一个静态库。从打开工作簿的语句中删除new
。
顺便说一下,您可能希望了解如何使用EPPlus。这是一个使用Excel文件的好库。你可以从nuget那里得到它。
答案 2 :(得分:0)