Excel文件操作(创建、读取、写入、修改)
2023-8-17 8:57:18 点击:
读取Excel文件,需要导入一些dll文件,才能正常的读取、创建Excell文件:
创建Excel文件
using OfficeOpenXml; using System.IO; using UnityEngine; public class Demo5 : MonoBehaviour { void Start() { string _filePath = Application.streamingAssetsPath + "/学生信息.xlsx"; string _sheetName = "详情"; FileInfo _excelName = new FileInfo(_filePath); if (_excelName.Exists) { //删除旧文件,并创建一个新的 excel 文件。 _excelName.Delete(); _excelName = new FileInfo(_filePath); } //通过ExcelPackage打开文件 using (ExcelPackage package = new ExcelPackage(_excelName)) { //在 excel 空文件添加新 sheet,并设置名称。 ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(_sheetName); //添加列名 worksheet.Cells[1, 1].Value = "学号"; worksheet.Cells[1, 2].Value = "姓名"; worksheet.Cells[1, 3].Value = "性别"; //添加一行数据 worksheet.Cells[2, 1].Value = 100001; worksheet.Cells[2, 2].Value = "张三"; worksheet.Cells[2, 3].Value = "男"; //添加一行数据 worksheet.Cells[3, 1].Value = 100002; worksheet.Cells[3, 2].Value = "李四"; worksheet.Cells[3, 3].Value = "女"; //添加一行数据 worksheet.Cells[4, 1].Value = 120033; worksheet.Cells[4, 2].Value = "Saw"; worksheet.Cells[4, 3].Value = "男"; //保存excel package.Save(); } } }
读取Excel文件
读取Excel,主要操作就是先用IO命名空间里面的文件读取类以文件流形式读取文件,然后再从dll里面的API去转化数据保存下来,然后使用DataSet数据结构保存数据:
using Excel; using System.Data; using System.IO; using UnityEngine; public class Demo5 : MonoBehaviour { void Start() { DataRowCollection _dataRowCollection = ReadExcel(Application.streamingAssetsPath + "/学生信息.xlsx"); for (int i = 0; i < _dataRowCollection.Count; i++) { Debug.Log(_dataRowCollection[i][0] + " " + _dataRowCollection[i][1] + " " + _dataRowCollection[i][2]); } } //通过表的索引,返回一个DataRowCollection表数据对象 private DataRowCollection ReadExcel(string _path, int _sheetIndex = 0) { FileStream stream = File.Open(_path, FileMode.Open, FileAccess.Read, FileShare.Read); IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); DataSet result = excelReader.AsDataSet(); return result.Tables[_sheetIndex].Rows; } //通过表的名字,返回一个DataRowCollection表数据对象 private DataRowCollection ReadExcel(string _path, string _sheetName) { FileStream stream = File.Open(_path, FileMode.Open, FileAccess.Read, FileShare.Read); IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); DataSet result = excelReader.AsDataSet(); return result.Tables[_sheetName].Rows; } }
修改Excel数据
修改Excel数据,首先需要知道自己要修改的哪一行那一列的数据,如果是全部修改,不如将原来的Excel删除,然后再构建一个,如果只是修改某行某列的数据的话,可以使用下面的方法,比如,修改4行3列的数据:
using Excel; using OfficeOpenXml; using System.Data; using System.IO; using UnityEngine; public class Demo5 : MonoBehaviour { void Start() { string path = Application.streamingAssetsPath + "/学生信息.xlsx"; UpdateExcel(path); } private void UpdateExcel(string filePath) { FileInfo _excelName = new FileInfo(filePath); using (ExcelPackage package = new ExcelPackage(_excelName)) { ExcelWorksheet worksheet = package.Workbook.Worksheets["详情"]; //修改某一行的数据 worksheet.Cells[4, 3].Value = "女"; //保存excel package.Save(); } } }
读取Excel需要引入DLL,注意不同的Excel版本,可能会有一些问题出现。
声明:文章内容整理来源于网络,版权属于原作者,如有问题,请联系我们。
- 上一篇:没有啦
- 下一篇:HoloLens 开发简要教程(Unity3d+VS2015 2023/8/14