unity读取excel表格中的单元格内容
unity 的.net需要改为4.X 需要的dll文件如下,将文件夹放在Plugins目录下 Eplus下载链接 免费下载,骑士精神万岁
public int rowNum;
private int columnNum;
private DataTable table;
public List<Subject> subjects;
private DataTable ReadExcelGo(string filePath)
{
IExcelDataReader excelReader = null;
FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
var str = filePath.Split('.');
if (str[1] == "xlsx")
{
excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
}
if (str[1] == "xls")
{
excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
}
DataSet result = excelReader.AsDataSet();
stream.Close();<br>
columnNum = result.Tables[0].Columns.Count;
rowNum = result.Tables[0].Rows.Count;
return result.Tables[0];
}
private void SpawnSubject()
{
table = ReadExcelGo(Application.streamingAssetsPath + "/exam.xlsx");
for (int r = 1; r < rowNum; r++)
{
Subject sub = new Subject();
object[] rowObjs = table.Rows[r].ItemArray;
for (int c = 0; c < columnNum; c++)
{
if (c == 0)
{<br>
string str = rowObjs[c].ToString();
switch (str)
{
case "1":
sub.subType = SubjectType.Single;
break;
case "2":
sub.subType = SubjectType.Multiple;
break;
case "3":
sub.subType = SubjectType.Judge;
break;
}
}
else if (c == 1)
{
sub.subTitle = rowObjs[c].ToString();
}
else if (c == 2)
{
sub.A = rowObjs[c].ToString();
}
else if (c == 3)
{
sub.B = rowObjs[c].ToString();
}
else if (c == 4)
{
sub.C = rowObjs[c].ToString();
}
else if (c == 5)
{
sub.D = rowObjs[c].ToString();
}
else if (c == 6)
{
string str = rowObjs[c].ToString();
sub.currentAnswer = str.Split(',');
}
else if (c == 7)
{
sub.score = float.Parse(rowObjs[c].ToString());
}
}
subjects.Add(sub);
}
}
|