Unity3D组件 | Excel导出

Unity3D导出Excel表格

前言

这篇文章实现的是根据一个Excel模板让软件自动导出表格。
本次使用EPPlus.dll这个动态链接库,这个库中有OfficeOpenXml类库,使用其中函数即可实现从Unity3D中调用Excel。

代码部分

using OfficeOpenXml;//添加这两个类库
using OfficeOpenXml.Style;


public void Set_Up_Report(DateTime dt, DateTime dt1)
    {
        //输出的文件名称
        string Time = dt.GetDateTimeFormats('s')[0].ToString() + "至" + dt1.GetDateTimeFormats('s')[0].ToString();//导出区间的时间段定义
        Two_Path = "D:/E_Report" + "/" + Char_ + Regex.Replace(Regex.Replace(Time, @"\s", ""), ":", "-") + ".xlsx";//这个定义保存地址
        FileInfo fileInfo = new FileInfo(Eg_Two_Path);//对模板地址初始化
        FileInfo fileInfo_1 = new FileInfo(Two_Path);//对保存地址初始化
        try
        {
            using (ExcelPackage excelPackage_Eg = new ExcelPackage(fileInfo))//打开Excel模板文件
            {
                excelPackage_Eg.SaveAs(fileInfo_1);//另存为
                using (ExcelPackage excelPackage = new ExcelPackage(fileInfo_1))//在打开模板文件的同时打开保存地址的文件
                {
                    ExcelWorksheet worksheet = excelPackage_Eg.Workbook.Worksheets["sheet1"];
                    //这里对Excel表格中打开一个新表,在以上的初始化是一个空白的表格文件所以需要添加一个新表
                    worksheet.Cells[2, 9].Value = DateTime.Now.GetDateTimeFormats('D')[0].ToString();
                    worksheet.Cells[3, 3].Value = dt.GetDateTimeFormats('F')[0].ToString();
                    worksheet.Cells[3, 8].Value = dt1.GetDateTimeFormats('F')[0].ToString();
                    //以上时添入数值的例子,worksheet.Cells[i, j].Value(其中i为行,j为列)。

                    worksheet.Protection.IsProtected = true;//设置是否进行锁定
                    worksheet.Protection.SetPassword(Excel_Password.text);//设置密码
                    worksheet.Protection.AllowAutoFilter = false;//下面是一些锁定时权限的设置
                    worksheet.Protection.AllowDeleteColumns = false;
                    worksheet.Protection.AllowDeleteRows = false;
                    worksheet.Protection.AllowEditScenarios = false;
                    worksheet.Protection.AllowEditObject = false;
                    worksheet.Protection.AllowFormatCells = false;
                    worksheet.Protection.AllowFormatColumns = false;
                    worksheet.Protection.AllowFormatRows = false;
                    worksheet.Protection.AllowInsertColumns = false;
                    worksheet.Protection.AllowInsertHyperlinks = false;
                    worksheet.Protection.AllowInsertRows = false;
                    worksheet.Protection.AllowPivotTables = false;
                    worksheet.Protection.AllowSelectLockedCells = false;
                    worksheet.Protection.AllowSelectUnlockedCells = false;
                    worksheet.Protection.AllowSort = false;

                    excelPackage.Save();//注意要先保存导出文件
                }//关闭Excel文件
                excelPackage_Eg.Save();//最后保存模板文件
            }//关闭Excel_Eg文件 
            Debug.Log("已导出");
        }
        catch(Exception ex)
        {
            Debug.Log(ex);
        }
}

结论

本文例举了几个简单的EPPlus库中函数,希望对刚学的朋友们有帮助。
如果在使用EPPlus的时候遇到错误可参照关于UNITY中System.Drawing引用失败的处理方法中。

猜你喜欢

转载自blog.csdn.net/qq_44879321/article/details/122753551