unity中必须要有Plugins文件夹以及dll文件
官方dll文件下载链接: https://archive.codeplex.com/?p=exceldatareader
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Excel;
using System.IO;
using System.Data;
using OfficeOpenXml; public class Exc_GenXin : MonoBehaviour {
private string DpanMain = "D:/anchor/main.xlsx";//D盘main表格
private string AsstPath;//streaamingAssets文件里面的文件
public static List<DepenceTableDataTwo> DepenceTableDataList = new List<DepenceTableDataTwo>();//创建列表
private void Awake()
{
AsstPath = Application.streamingAssetsPath + "/main.xlsx";
}
private void OnEnable()
{
if (File.Exists(DpanMain))
{
DepenceTableDataList = ReadLoad(DpanMain);
WriteExcel(AsstPath);
Debug.Log("更新成功");
}
} // Use this for initialization
void Start () { }
public void AANniu()
{ }
public struct DepenceTableDataTwo
{
public string itemNumber;//标号
public string topicType;//类型
public string topic;//题目
public string optionA;//A
public string optionB;//B
public string optionC;//C
public string optionD;//D
public string answer;//答案
}
/// <summary>
/// 读取表格
/// </summary>
/// <param name="path">路径</param>
/// <returns></returns>
public static DataSet ReadExcel(string path)
{
FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
DataSet result = excelReader.AsDataSet(); return result; }
public static List <DepenceTableDataTwo> ReadLoad(string path)
{
List<DepenceTableDataTwo> _data = new List<DepenceTableDataTwo>();
DataSet resultds = ReadExcel(path);
int rows = resultds.Tables[].Rows.Count;//行
int colums = resultds.Tables[].Columns.Count;//列
for (int i = ; i < rows; i++)
{
DepenceTableDataTwo dependData;
dependData.itemNumber = resultds.Tables[].Rows[i][].ToString();
dependData.topicType = resultds.Tables[].Rows[i][].ToString();
dependData.topic = resultds.Tables[].Rows[i][].ToString();
if (dependData.topicType =="选择")
{
dependData.optionA = resultds.Tables[].Rows[i][].ToString();
dependData.optionB = resultds.Tables[].Rows[i][].ToString();
dependData.optionC = resultds.Tables[].Rows[i][].ToString();
dependData.optionD = resultds.Tables[].Rows[i][].ToString();
dependData.answer = resultds.Tables[].Rows[i][].ToString();
}
else
{
dependData.optionA = string.Empty;
dependData.optionB = string.Empty;
dependData.optionC = string.Empty;
dependData.optionD = string.Empty;
dependData.answer = resultds.Tables[].Rows[i][].ToString();
}
_data.Add(dependData);
}
return _data;
}
/// <summary>
/// 写入表格
/// </summary>
/// <param name="path">路径</param>
public static void WriteExcel(string outpath)
{
FileInfo newFile = new FileInfo(outpath);
if (newFile .Exists )
{
newFile.Delete();
newFile = new FileInfo(outpath);
}
using (ExcelPackage package=new ExcelPackage(newFile))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
for (int i = ; i < DepenceTableDataList.Count; i++)
{
worksheet.Cells[i + , ].Value = DepenceTableDataList[i].itemNumber.ToString ();
worksheet.Cells[i + , ].Value = DepenceTableDataList[i].topicType.ToString ();
worksheet.Cells[i + , ].Value = DepenceTableDataList[i].topic.ToString ();
if (DepenceTableDataList[i].topicType == "选择")
{
worksheet.Cells[i + , ].Value = DepenceTableDataList[i].optionA .ToString();
worksheet.Cells[i + , ].Value = DepenceTableDataList[i].optionB .ToString();
worksheet.Cells[i + , ].Value = DepenceTableDataList[i].optionC .ToString();
worksheet.Cells[i + , ].Value = DepenceTableDataList[i].optionD .ToString();
worksheet.Cells[i + , ].Value = DepenceTableDataList[i].answer .ToString();
}
else
{
worksheet.Cells[i + , ].Value = DepenceTableDataList[i].answer.ToString();
}
}
package.Save();
}
}
}

下面附上自己做的Demo地址,不是很完善,但里面也没有错误,大佬们不要介意,感谢!

这是链接:

链接:https://pan.baidu.com/s/1CPLIVsvMzWUknQAi0Ekgjg
提取码:bkod
复制这段内容后打开百度网盘手机App,操作更方便哦

 

从外面更新unity需要用的题库的更多相关文章

  1. 更新 | 2019年9月计算机二级office模拟题库

    随着2019年上半年计算机二级考试的完美落幕,紧接着的便是9月份的考试了. 到目前为止,下半年9月份计算机二级考试报名开通时间在6月前后,现在也基本结束. 2019年9月(56次)全国计算机等级考试( ...

  2. Android实训案例(九)——答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程

    Android实训案例(九)--答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程 项目也是偷师的,决心研究一下数据库.所以写的还是很详细的,各位看官,耐着性子看完,实现结果不重要 ...

  3. 猿题库 iOS 客户端架构设计

    原文: http://mp.weixin.qq.com/s?__biz=MjM5NTIyNTUyMQ==&mid=444322139&idx=1&sn=c7bef4d439f4 ...

  4. 猿题库 iOS 客户端架构设计-唐巧

    序 猿题库是一个拥有数千万用户的创业公司,从20013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代. 在如此快速的开发过程中,如何保证代码 ...

  5. Hibernate考试试题(部分题库)含答案

    Hibernate考试试题 (题库) 1.  在Hibernate中,下列说法正确的有( ABC ).[选三项] A.Hibernate是一个开放源代码的对象关系映射框架 B.Hibernate对JD ...

  6. Ocr答题辅助神器 OcrAnswerer4.x,通过百度OCR识别手机文字,支持屏幕窗口截图和ADB安卓截图,支持四十个直播App,可保存题库

    http://www.cnblogs.com/Charltsing/p/OcrAnswerer.html 联系qq:564955427 最新版为v4.1版,开放一定概率的八窗口体验功能,请截图体验(多 ...

  7. 小学生噩梦——四则运算题库(python 全功能实现)

    Github: https://github.com/holidaysss 小组:龙天尧(代码实现),林毓植(浮点转分数函数,代码审查) PSP2.1 Personal Software Proces ...

  8. Linux题库练习

    转一个Linux的题库供自己学习使用(滑稽) 转自:http://www.linuxdiyf.com/view_202485.html 选择题1 在终端下输入mount -a命令的作用是:CA 强制进 ...

  9. 猿题库 iOS 客户端架构设计(原文地址:http://gracelancy.com/blog/2016/01/06/ape-ios-arch-design/)

    猿题库 iOS 客户端架构设计 序 猿题库是一个拥有数千万用户的创业公司,从2013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代.在如此快 ...

随机推荐

  1. postgresql某个字段值按照指定规则排序

    select id,serial_group_id,state from ap_model order by serial_group_id asc, ( case when state=1 then ...

  2. 第八周java学习总结

    学号 20175206 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章:泛型与集合框架 主要内容 泛型 链表 堆栈 散列映射 树集 树映射 重点和难点 重点:泛型和集合的使 ...

  3. 2017-12-19python全栈9期第四天第三节之iterable可迭代对象join之字符串和列表转换成字符串和range

    #!/user/bin/python# -*- coding:utf-8 -*-s = 'zd's1 = '_'.join(s)print(s1)li = ['zs','ls','ww','zl',' ...

  4. (四) 虚拟摄像头vivi体验

    目录 虚拟摄像头vivi体验 源码下载 修改Makefile 安装xawtv 测试体验 title: 虚拟摄像头vivi体验 date: 2019/4/23 19:20:00 toc: true -- ...

  5. 010-1 Socket地址族AddressFamily

    AddressFamily地址组成员 成员名称 说明 AppleTalk AppleTalk 地址. Atm 本机 ATM 服务地址. Banyan Banyan 地址. Ccitt 对于 CCITT ...

  6. MapReduce-TextInputFormat 切片机制

    MapReduce 默认使用 TextInputFormat 进行切片,其机制如下 (1)简单地按照文件的内容长度进行切片 (2)切片大小,默认等于Block大小,可单独设置 (3)切片时不考虑数据集 ...

  7. 关于APP测试的一点思考

    1  系统入口部分要细化测试用例颗粒度  充分准备好测试数据   真实覆盖线上场景 比如注册验证码的获取  国内 国外手机  一般国外手机发送短信 打电话都要加上区号 2 新版本发布   有新功能上线 ...

  8. [译]asp-net-core-mvc-ajax-form-requests-using-jquery-unobtrusive

    原文 全文源码 开始项目 项目使用了package.json'文件,添加需要的前端package到项目中.在这我们添加了jquery-ajax-unobstrusive`. { "versi ...

  9. move_base Warning: Invalid argument "/map" passed to canTransform argument target_frame的解决方法

    把global_costmap_params.yaml和local_costmap_params.yaml文件里的头几行去掉“/”,然后重新编译就可以了. 效果如下:

  10. HTML基础之JS中的字符转义--转义中文或特殊字符

    1.在标准的url的规范中是不允许出现中文字符或某些特殊字符的,所以要进行转义 2.& 代表参数的链接,如果就是想传& 给后端那么必须转义 decodeURI(url) URl中未转义 ...