1. unity中必须要有Plugins文件夹以及dll文件
    官方dll文件下载链接: https://archive.codeplex.com/?p=exceldatareader
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using Excel;
  5. using System.IO;
  6. using System.Data;
  7. using OfficeOpenXml;
  8.  
  9. public class Exc_GenXin : MonoBehaviour {
  10. private string DpanMain = "D:/anchor/main.xlsx";//D盘main表格
  11. private string AsstPath;//streaamingAssets文件里面的文件
  12. public static List<DepenceTableDataTwo> DepenceTableDataList = new List<DepenceTableDataTwo>();//创建列表
  13. private void Awake()
  14. {
  15. AsstPath = Application.streamingAssetsPath + "/main.xlsx";
  16. }
  17. private void OnEnable()
  18. {
  19. if (File.Exists(DpanMain))
  20. {
  21. DepenceTableDataList = ReadLoad(DpanMain);
  22. WriteExcel(AsstPath);
  23. Debug.Log("更新成功");
  24. }
  25. }
  26.  
  27. // Use this for initialization
  28. void Start () {
  29.  
  30. }
  31. public void AANniu()
  32. {
  33.  
  34. }
  35. public struct DepenceTableDataTwo
  36. {
  37. public string itemNumber;//标号
  38. public string topicType;//类型
  39. public string topic;//题目
  40. public string optionA;//A
  41. public string optionB;//B
  42. public string optionC;//C
  43. public string optionD;//D
  44. public string answer;//答案
  45. }
  46. /// <summary>
  47. /// 读取表格
  48. /// </summary>
  49. /// <param name="path">路径</param>
  50. /// <returns></returns>
  51. public static DataSet ReadExcel(string path)
  52. {
  53. FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read);
  54. IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
  55. DataSet result = excelReader.AsDataSet();
  56.  
  57. return result;
  58.  
  59. }
  60. public static List <DepenceTableDataTwo> ReadLoad(string path)
  61. {
  62. List<DepenceTableDataTwo> _data = new List<DepenceTableDataTwo>();
  63. DataSet resultds = ReadExcel(path);
  64. int rows = resultds.Tables[].Rows.Count;//行
  65. int colums = resultds.Tables[].Columns.Count;//列
  66. for (int i = ; i < rows; i++)
  67. {
  68. DepenceTableDataTwo dependData;
  69. dependData.itemNumber = resultds.Tables[].Rows[i][].ToString();
  70. dependData.topicType = resultds.Tables[].Rows[i][].ToString();
  71. dependData.topic = resultds.Tables[].Rows[i][].ToString();
  72. if (dependData.topicType =="选择")
  73. {
  74. dependData.optionA = resultds.Tables[].Rows[i][].ToString();
  75. dependData.optionB = resultds.Tables[].Rows[i][].ToString();
  76. dependData.optionC = resultds.Tables[].Rows[i][].ToString();
  77. dependData.optionD = resultds.Tables[].Rows[i][].ToString();
  78. dependData.answer = resultds.Tables[].Rows[i][].ToString();
  79. }
  80. else
  81. {
  82. dependData.optionA = string.Empty;
  83. dependData.optionB = string.Empty;
  84. dependData.optionC = string.Empty;
  85. dependData.optionD = string.Empty;
  86. dependData.answer = resultds.Tables[].Rows[i][].ToString();
  87. }
  88. _data.Add(dependData);
  89. }
  90. return _data;
  91. }
  92. /// <summary>
  93. /// 写入表格
  94. /// </summary>
  95. /// <param name="path">路径</param>
  96. public static void WriteExcel(string outpath)
  97. {
  98. FileInfo newFile = new FileInfo(outpath);
  99. if (newFile .Exists )
  100. {
  101. newFile.Delete();
  102. newFile = new FileInfo(outpath);
  103. }
  104. using (ExcelPackage package=new ExcelPackage(newFile))
  105. {
  106. ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
  107. for (int i = ; i < DepenceTableDataList.Count; i++)
  108. {
  109. worksheet.Cells[i + , ].Value = DepenceTableDataList[i].itemNumber.ToString ();
  110. worksheet.Cells[i + , ].Value = DepenceTableDataList[i].topicType.ToString ();
  111. worksheet.Cells[i + , ].Value = DepenceTableDataList[i].topic.ToString ();
  112. if (DepenceTableDataList[i].topicType == "选择")
  113. {
  114. worksheet.Cells[i + , ].Value = DepenceTableDataList[i].optionA .ToString();
  115. worksheet.Cells[i + , ].Value = DepenceTableDataList[i].optionB .ToString();
  116. worksheet.Cells[i + , ].Value = DepenceTableDataList[i].optionC .ToString();
  117. worksheet.Cells[i + , ].Value = DepenceTableDataList[i].optionD .ToString();
  118. worksheet.Cells[i + , ].Value = DepenceTableDataList[i].answer .ToString();
  119. }
  120. else
  121. {
  122. worksheet.Cells[i + , ].Value = DepenceTableDataList[i].answer.ToString();
  123. }
  124. }
  125. package.Save();
  126. }
  127. }
    }
  1.  

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

这是链接:

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

  1.  

从外面更新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. Unity Technologies-提供全面的技术支持服务

    Unity Technologies-提供全面的技术支持服务 在收费服务是由Unity大华区面向研发企业推出的一项技术支持服务,以全中文的方式进行,为研发团队解答在使用Unity引擎过程中遇到的各类问 ...

  2. 通信传输利器Netty(Net is DotNetty)介绍

    (先埋怨一下微软大大)我们做NET开发,十分羡慕JAVA上能有NETTY, SPRING, STRUTS, DUBBO等等优秀框架,而我们NET就只有干瞪眼,哎,无赖之前生态圈没做好,恨铁不成钢啊.不 ...

  3. Redis实战(十)Redis常见问题及解决方案

    序言

  4. JGUI源码:JS菜单动态绑定(8)

    我们知道Jquery绑定事件后的新添加的对象是不响应事件的,为了解决这个问题,动态添加的对象需要从新绑定,使用一个init方法实现代码如下 //Accordion封装 (function($) { J ...

  5. 题解 P3871 【[TJOI2010]中位数】

    orz各位大佬,题解太强了,主席树,堆,线段树,splay,还有暴力,太巨了.所以我用的是fhq treap(好像更高级).算了. 反正都是平衡树,这道题就是动态求中位数,不会做的同学可以先做弱化版P ...

  6. 将应用部署到Tomcat根目录的方法

    将应用部署到Tomcat根目录的目的是可以通过“http://[ip]:[port]”直接访问应用,而不是使用“http://[ip]:[port]/[appName]”上下文路径进行访问.   方法 ...

  7. fhq treap

    学了一下,好像明白了(背下来了) 不想写main函数了 PS:这个比treap好写(私以为) #include<bits/stdc++.h> using namespace std; in ...

  8. mysql8用户管理

    查看当前登录用户: 创建用户: create user '用户名'@'主机地址' identified with mysql_native_password by '密码'; 修改密码: alter ...

  9. Codeforces Round #541 (Div. 2)题解

    不知道该更些什么 随便写点东西吧 https://codeforces.com/contest/1131 ABC 太热了不写了 D 把相等的用并查集缩在一起 如果$ x<y$则从$ x$往$y$ ...

  10. es集群数据库~运维相关

    一 数据同步方案  1 ES-JDBC  不能实现删除同步操作.MYSQL如果删除,ES不会删除  2 logstash-input-jdbc  能实现insert update,但是仍然不能实现删除 ...