从外面更新unity需要用的题库
- 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需要用的题库的更多相关文章
- 更新 | 2019年9月计算机二级office模拟题库
随着2019年上半年计算机二级考试的完美落幕,紧接着的便是9月份的考试了. 到目前为止,下半年9月份计算机二级考试报名开通时间在6月前后,现在也基本结束. 2019年9月(56次)全国计算机等级考试( ...
- Android实训案例(九)——答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程
Android实训案例(九)--答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程 项目也是偷师的,决心研究一下数据库.所以写的还是很详细的,各位看官,耐着性子看完,实现结果不重要 ...
- 猿题库 iOS 客户端架构设计
原文: http://mp.weixin.qq.com/s?__biz=MjM5NTIyNTUyMQ==&mid=444322139&idx=1&sn=c7bef4d439f4 ...
- 猿题库 iOS 客户端架构设计-唐巧
序 猿题库是一个拥有数千万用户的创业公司,从20013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代. 在如此快速的开发过程中,如何保证代码 ...
- Hibernate考试试题(部分题库)含答案
Hibernate考试试题 (题库) 1. 在Hibernate中,下列说法正确的有( ABC ).[选三项] A.Hibernate是一个开放源代码的对象关系映射框架 B.Hibernate对JD ...
- Ocr答题辅助神器 OcrAnswerer4.x,通过百度OCR识别手机文字,支持屏幕窗口截图和ADB安卓截图,支持四十个直播App,可保存题库
http://www.cnblogs.com/Charltsing/p/OcrAnswerer.html 联系qq:564955427 最新版为v4.1版,开放一定概率的八窗口体验功能,请截图体验(多 ...
- 小学生噩梦——四则运算题库(python 全功能实现)
Github: https://github.com/holidaysss 小组:龙天尧(代码实现),林毓植(浮点转分数函数,代码审查) PSP2.1 Personal Software Proces ...
- Linux题库练习
转一个Linux的题库供自己学习使用(滑稽) 转自:http://www.linuxdiyf.com/view_202485.html 选择题1 在终端下输入mount -a命令的作用是:CA 强制进 ...
- 猿题库 iOS 客户端架构设计(原文地址:http://gracelancy.com/blog/2016/01/06/ape-ios-arch-design/)
猿题库 iOS 客户端架构设计 序 猿题库是一个拥有数千万用户的创业公司,从2013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代.在如此快 ...
随机推荐
- Unity Technologies-提供全面的技术支持服务
Unity Technologies-提供全面的技术支持服务 在收费服务是由Unity大华区面向研发企业推出的一项技术支持服务,以全中文的方式进行,为研发团队解答在使用Unity引擎过程中遇到的各类问 ...
- 通信传输利器Netty(Net is DotNetty)介绍
(先埋怨一下微软大大)我们做NET开发,十分羡慕JAVA上能有NETTY, SPRING, STRUTS, DUBBO等等优秀框架,而我们NET就只有干瞪眼,哎,无赖之前生态圈没做好,恨铁不成钢啊.不 ...
- Redis实战(十)Redis常见问题及解决方案
序言
- JGUI源码:JS菜单动态绑定(8)
我们知道Jquery绑定事件后的新添加的对象是不响应事件的,为了解决这个问题,动态添加的对象需要从新绑定,使用一个init方法实现代码如下 //Accordion封装 (function($) { J ...
- 题解 P3871 【[TJOI2010]中位数】
orz各位大佬,题解太强了,主席树,堆,线段树,splay,还有暴力,太巨了.所以我用的是fhq treap(好像更高级).算了. 反正都是平衡树,这道题就是动态求中位数,不会做的同学可以先做弱化版P ...
- 将应用部署到Tomcat根目录的方法
将应用部署到Tomcat根目录的目的是可以通过“http://[ip]:[port]”直接访问应用,而不是使用“http://[ip]:[port]/[appName]”上下文路径进行访问. 方法 ...
- fhq treap
学了一下,好像明白了(背下来了) 不想写main函数了 PS:这个比treap好写(私以为) #include<bits/stdc++.h> using namespace std; in ...
- mysql8用户管理
查看当前登录用户: 创建用户: create user '用户名'@'主机地址' identified with mysql_native_password by '密码'; 修改密码: alter ...
- Codeforces Round #541 (Div. 2)题解
不知道该更些什么 随便写点东西吧 https://codeforces.com/contest/1131 ABC 太热了不写了 D 把相等的用并查集缩在一起 如果$ x<y$则从$ x$往$y$ ...
- es集群数据库~运维相关
一 数据同步方案 1 ES-JDBC 不能实现删除同步操作.MYSQL如果删除,ES不会删除 2 logstash-input-jdbc 能实现insert update,但是仍然不能实现删除 ...