Unity笔记之Unity读取/写入Excel

此前必须导入EPPlus.dll、Excel.dll、ICSharpCode.SharpZipLib.dll这三个dll

读取Excel内容

/// <summary>
        /// 表格纵向总数
        /// </summary>
        public static int rowCount { get; private set; }

        /// <summary>
        /// 表格横向总数
        /// </summary>
        public static int columnsCount { get; private set; }

        /// <summary>
        /// 读取 Excel ; 需要添加 Excel.dll; System.Data.dll;
        /// </summary>
        /// <param name="excelName">excel文件名</param>
        /// <param name="sheetName">sheet名称</param>
        /// <returns>DataRow的集合</returns>
        public static DataTableCollection Read(string excelPath, string excelName, string sheetName)
        {
            string path = excelPath + "/" + excelName;
            Debug.Log(path);
            //string path = Application.dataPath + "/" + excelName;
            FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read);
            IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

            DataSet result = excelReader.AsDataSet();
            //int columns = result.Tables[0].Columns.Count;
            //int rows = result.Tables[0].Rows.Count;

            rowCount = result.Tables[sheetName].Rows.Count;
            columnsCount = result.Tables[sheetName].Columns.Count;

            //tables可以按照sheet名获取,也可以按照sheet索引获取
            //return result.Tables[0].Rows;
            return result.Tables;
        }

写入/修改Excel内容

/// <summary>
        /// Excel修改指定位置的内容
        /// </summary>
        /// <param name="excelPath">Excel路径</param>
        /// <param name="excelName">Excel名字</param>
        /// <param name="sheetName">Excel的Sheet名字</param>
        /// <param name="row"></param>
        /// <param name="column"></param>
        /// <param name="context">修改后的内容</param>
        public static void Write(string excelPath, string excelName, string sheetName, int row, int column,
            string context)
        {
            string path = excelPath + "/" + excelName;

            FileInfo newFile = new FileInfo(path);
            
            //删除此表格重新创建一个新的Excel(视情况而定是否需要)
            // if (newFile.Exists)
            // {
            //     newFile.Delete();
            //     newFile = new FileInfo(path);
            // }

            using (ExcelPackage package = new ExcelPackage(newFile))
            {
                ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(sheetName);
                worksheet.Cells[row, column].Value = context;//自己检查有没有搞反
                package.Save();
            }
        }

项目工程地址

posted @   一世癫狂  阅读(10)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示