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();
            }
        }

项目工程地址

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值