太原做网站的公司网站建设,淄博网站备案公司,中国铁路监理建设协会网站,企业网站推广联系方式把dll资源解压后#xff0c;全部导入到unity中的Plugins文件下面 资源放在标题下方#xff0c;可以自行下载 使用教程 引入命名空间 using SimpleExcel;。这个命名空间下主要有两个类#xff1a;WorkBook和Sheet。WorkBook用于对整个excel文件的操作#xff0c;如创建、打开…把dll资源解压后全部导入到unity中的Plugins文件下面 资源放在标题下方可以自行下载 使用教程 引入命名空间 using SimpleExcel;。这个命名空间下主要有两个类WorkBook和Sheet。WorkBook用于对整个excel文件的操作如创建、打开、保存Sheet用于对工作表的操作如在特定单元格中添加、修改数据从数据源中批量导入等。可以参考以下的代码示例
新建工作簿和工作表var workbook new WorkBook();
var sheet workbook.NewSheet(sheet1);
读取工作簿和工作表// 根据路径读取工作簿
var workbook var workbook new WorkBook(F:\projects\Repos\Panda.SimpleExcel\Test\bin\Debug\test.xlsx);// 根据索引读取工作表
var sheet1 workbook.GetSheet(0);// 根据名称读取工作表
var sheet2 workbook.GetSheet(Sheet2);
直接给单元格赋值单元格用Sheet.Rows[rowIndex][columnIndex]获取并使用Value属性获取或修改它的内容sheet1.Rows[0][0].Value Hello;
Sheet类提供了直接从IEnumerable转换数据的功能。默认情况下它会将类型T的所有字段名作为表头将集合中的所有对象排列出来。例如我们先创建一个类public class Person
{public string Name { get; set; }public string Sex { get; set; }public int Age { get; set; }
}
然后使用Sheet.ConvertFromQueryT将集合直接添加到工作表中var list new ListPerson();
for(int i 0; i 10; i)
{var person new Person(){Name 测试 i,Sex i % 2 0 ? 男 : 女,Age i};list.Add(person);
}
//将List对象添加到工作表中第一个参数是集合对象第二个参数是起始行数默认为0
sheet1.ConvertFromQuery(list, 1);
同样也可以直接使用linq语句将查询结果添加到工作表//将linq语句转换成工作表数据
var p from a in list where a.Sex 男 select a;
sheet2.ConvertFromQuery(p);
保存工作簿workbook.Save(D:\projects\test.xls);
样式控制可以通过特性来控制工作表的样式。使用Row特性可以控制行样式使用Column特性可以控制列样式。[Row(EvenRowColor ExcelColor.Aqua,OddRowColor ExcelColor.CornflowerBule,HeaderBackColor ExcelColor.Maroon,HeaderFontColor ExcelColor.White,HeaderHeight 20,HeaderHorAlign HorizontalAlign.Center,HeaderVerAlign VerticalAlign.Center)]
public class Person
{[Column(BackColor ExcelColor.Brown, FontColor ExcelColor.White, FontSize 14,FontFamily 黑体,HorAlign HorizontalAlign.Center,VerAlign VerticalAlign.Center,Name 姓名)]public string Name { get; set; }[Column(FontColor ExcelColor.Red,HorAlign HorizontalAlign.Left,VerAlign VerticalAlign.Center,Name 性别)]public string Sex { get; set; }public int Age { get; set; }
}项目中运用示例,读去一个思考题的excel,下图是表格格式 public void GetQuestion(string name, Question game){#region 直接读取Excel 添加思考题Question question game ;//获取到excel表var workbook new WorkBook(Application.dataPath /Excel/思考题/ name .xlsx);var sheet1 workbook.GetSheet(0);//获取第一个工作表question.minNum 1;//注例如表格中有4行数据长度LastRowNum则是30是第一行1是第二行2是第三行3是第四行//此处-1是因为思考题表格中第一行和第二行是提示从第三行才是思考题。如当有四行数据时思考题只有两道但是Rows.LastRowNum3所以-1等于2question.maxNum sheet1.Rows.LastRowNum - 1;question.questionCount sheet1.Rows.LastRowNum - 1;question.datas new Question.QuestionItemData[sheet1.Rows.LastRowNum - 1];for (int i 0; i question.datas.Length; i){int t i 2;//此处2 是因为要从表格的第三行开始读取表格数据question.datas[i].question sheet1.Rows[t][0].Value;question.datas[i].answer sheet1.Rows[t][1].Value; ;question.datas[i].selects sheet1.Rows[t][2].Value.Split(|);question.datas[i].resultRight sheet1.Rows[t][3].Value;question.datas[i].resultWrong sheet1.Rows[t][4].Value;question.datas[i].sprite Resources.LoadSprite(思考题图片/ sheet1.Rows[t][5].Value);question.datas[i].point sheet1.Rows[][6].Value;if (string.IsNullOrEmpty(sheet1.Rows[t][7].Value)){question.datas[i].pointValue 0;}else{question.datas[i].pointValue float.Parse(sheet1.Rows[i 2][7].Value);}}#endregion}