unity持久化数据之Excel



tags: unity,unity excel,unity持久化数据
grammar_cjkRuby: true
---

unity持久化数据之Excel

第三方库

EPPlus:https://github.com/JanKallman/EPPlus

读取

using OfficeOpenXml;
using UnityEditor;
.... ....

    [MenuItem("Excel/Load Excel")]
    static void LoadExcel()
    {
        string path = Application.dataPath + "/Excel/test.xlsx";
        //读取Excel文件
        using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
        {
            using (ExcelPackage excel = new ExcelPackage(fs))
            {
                //遍历工作表
                ExcelWorksheets worksheets = excel.Workbook.Worksheets;
                Debug.LogFormat("sheetcount:{0}",worksheets.Count);
                for (int i = 1; i <=worksheets.Count ; i++)
                {

                    ExcelWorksheet worksheet = worksheets[i];
                    int colCount = worksheet.Dimension.End.Column;
                    //获取工作表名称
                    Debug.Log("sheet:" + worksheet.Name);
                    for (int row = 1,count=worksheet.Dimension.End.Row; row <=count; row++)
                    {
                        for (int col = 1; col <= colCount; col++)
                        {
                            //读取单元格数据
                            var text = worksheet.Cells[row, col].Text ?? "";
                            Debug.LogFormat("下标{0},{1} 内容:{2}",row,col,text);
                        }
                    }
                }
            }
    }
    }

创建

[MenuItem("Excel/Write Excel")]
    static void WirteExcel()
    {
        //创建Excel
        string path = Application.dataPath + "/Excel/new.xlsx";
        var file = new FileInfo(path);

        using (ExcelPackage excel = new ExcelPackage(file))
        {
            //写入数据
            ExcelWorksheet worksheet = excel.Workbook.Worksheets.Add("sheet1");
            worksheet.Cells[1, 1].Value = "nice";
            worksheet.Cells[1, 2].Value = "job";
            //保存
            excel.Save();
        }
        AssetDatabase.Refresh();
}

其他

注:(套娃){摘自https://www.cnblogs.com/shuaichao/p/4262346.html}

//创建Excel工作表
private static ExcelWorksheet CreateSheet(ExcelPackage p, string sheetName)
 {
    p.Workbook.Worksheets.Add(sheetName);
    ExcelWorksheet ws = p.Workbook.Worksheets[1];
    ws.Name = sheetName; //Setting Sheet's name
    ws.Cells.Style.Font.Size = 11; //Default font size for whole sheet
    ws.Cells.Style.Font.Name = "Calibri"; //Default Font name for whole sheet

    return ws;
 }

//合并的Excel列
//Merging cells and create a center heading for out table
ws.Cells[1, 1].Value = "Sample DataTable Export"; // Heading Name
ws.Cells[1, 1, 1, dt.Columns.Count].Merge = true; //Merge columns start and end range
ws.Cells[1, 1, 1, dt.Columns.Count].Style.Font.Bold = true; //Font should be bold
ws.Cells[1, 1, 1, dt.Columns.Count].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; // Aligmnet is center

Excel单元格背景颜色
//Setting the background color of header cells to Gray
var fill = cell.Style.Fill;
fill.PatternType = ExcelFillStyle.Solid;
fill.BackgroundColor.SetColor(Color.Gray);

//Excel单元格边框
//Setting Top/left,right/bottom borders.
var border = cell.Style.Border;
border.Bottom.Style = border.Top.Style = border.Left.Style = border.Right.Style = ExcelBorderStyle.Thin;

//Excel公式
//Setting Sum Formula
cell.Formula = "Sum(" + ws.Cells[3, colIndex].Address + ":" + ws.Cells[rowIndex - 1, colIndex].Address + ")";

//添加注释到Excel单元格
private static void AddComment(ExcelWorksheet ws, int colIndex, int rowIndex, string comment, string author)
{
    //Adding a comment to a Cell
    var commentCell = ws.Cells[rowIndex, colIndex];
    commentCell.AddComment(comment, author);
}

//添加图像在Excel工作表
private static void AddImage(ExcelWorksheet ws, int columnIndex, int rowIndex, string filePath)
{
    //How to Add a Image using EP Plus
    Bitmap image = new Bitmap(filePath);
    ExcelPicture picture = null;
    if (image != null)
    {
        picture = ws.Drawings.AddPicture("pic" + rowIndex.ToString() + columnIndex.ToString(), image);
        picture.From.Column = columnIndex;
        picture.From.Row = rowIndex;
        picture.From.ColumnOff = Pixel2MTU(2); //Two pixel space for better alignment
        picture.From.RowOff = Pixel2MTU(2);//Two pixel space for better alignment
        picture.SetSize(100, 100);
    }
}

//添加自定义对象到Excel工作表
private static void AddCustomShape(ExcelWorksheet ws, int colIndex, int rowIndex, eShapeStyle shapeStyle, string text)
{
    ExcelShape shape = ws.Drawings.AddShape("cs" + rowIndex.ToString() + colIndex.ToString(), shapeStyle);
    shape.From.Column = colIndex;
    shape.From.Row = rowIndex;
    shape.From.ColumnOff = Pixel2MTU(5);
    shape.SetSize(100, 100);
    shape.RichText.Add(text);
}

litjson

https://www.cnblogs.com/Firepad-magic/p/5532650.html

Unity最受欢迎的插件,可以让您的游戏如虎添翼,为您节省大量时间可以投入在游戏的创意和细节上

原文地址:https://www.cnblogs.com/Firepad-magic/p/12127681.html

时间: 2024-07-30 06:23:42

unity持久化数据之Excel的相关文章

【Unity3D游戏开发】—— PlayerPrefs类实现本地持久化数据存储

在很多游戏中都会有"存储进度","读取进度"等菜单,或者当我们进入下一个场景时有些数据需要带入下一个场景.这就需要数据储存.Unity中提供了一个用于本地持久化保存于读取数据的类--PlayerPrefs. 它是以键值对的形式将数据保存在文件中. 下面来看看PlayerPrefs的简单用法.. //得到存储的数据 Grade = PlayerPrefs.GetFloat("mGrade", 0.0f).ToString(); //获取浮点型 Ag

关于 Unity3D 持久化数据存储的笔记 之 PlayerPrefs

持久化数据存储这个话题,无论在iOS.安卓都会经常见到的,更何况是跨平台的Unity. 首先我们说说最简单数据存储的方式吧. 1.PlayerPrefs类 在iOS 里面我们常用一种简单的方式存储读取简单的数据,就是通过 NSUserDefaults类来获取数据.读取数据. 而安卓处也有类似的方式进行存储.获取数据. 当然我们要学习的Unity 也有类似的方式进行存储.获取数据. 下面我就用iOS 来讲解一下. iOS 的数据存储是: [[NSUserDefaults standardUserD

C#中导出数据到Excel表格中

之前PM交给我一个自动化测试的Case,让我抓取页面上的数据到Excel表格中,刚好又接了一个之前人家做的系统, 刚好看到可以用NPOI导数据,就动手试试,成功导出. 由于鄙人比较菜,也比较懒, 怕自己忘记了,今天就总结一下,以防下次用可以参考. 1.要使用NPOI,首先需要在Project中Install NPOI的 Package. 右键点击Project------>Manage NuGet Packages---->Search NPOI----->点击搜索到的NPOI然后点击等

SharePoint集成Excel数据和Excel Web Access Web部件

SharePoint集成Excel数据和Excel Web Access Web部件 Excel Web Access Web部件在SharePoint中Excel电子表单里呈现数据. 1. 打开Excel 2010.创建空白工作薄. 2. 添加数据. 3. 点击另存为,选择文档库,点击确定,选择文档,点击确定. 4. 也可以添加Web部件. 5. 编辑部件,输入Excel的URL. SharePoint集成Excel数据和Excel Web Access Web部件,布布扣,bubuko.co

Docker(5)-共享和持久化数据

Docker为我们提供了两种方法来共享和持久化数据: Data Volumes Data Containers 数据卷 数据卷有时被简单的称为卷,是存储在主机上的目录,从容器的根文件系统中可以直接访问到它.它不仅可以持久化容器中生成的数据,而且可以实现容器与容器之间,容器与主机之间的数据共享. 要配置数据卷,我们可以在docker命令中使用-v选项并指定卷名.例如: docker run -it -v /mydir --name first ubuntu /bin/bash ls一下,可以看到在

poi大数据读写excel

一.描述 前端时间写了注解方式Excel的读取和写入,它是根据注解完成Excel的操作,虽说支持大数据,但对于超大数据就无能为力了,因为它的读写期间都是将所有数据放入系统内存的,除非你有超大的内存. 因项目需要对超大数据的Excel读写操作,于是网上找了个超大数据的读写代码,这个不需要太大内存.并对此进行了简单的修改. 原理如下: Excel超大数据读取:抽象Excel2007读取器,excel2007的底层数据结构是xml文件,采用SAX的事件驱动的方法解析 xml,需要继承DefaultHa

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult 导出EXCEL方法总结:MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可:优点:可设置丰富的EXCEL格式,缺点:需要依赖EXCEL组件,且EXCEL进程在服务器中无法及时关闭,以及服务器上会存留大量的不必要的XLS文件: 2.设置输出头为:application/ms-excel,再输出拼接的HTM

自动更新开奖数据的excel文件,供大家下载

自动更新开奖数据的excel文件,供大家下载 2010-03-14 20:22 228492人阅读打印来源:乐彩网 作者:eren 很多人拥有自制excel电子表格,常要更新最基本的开奖信息.如有多期未更新,则费时更多.乐彩网为大家提供八种彩票的自动更新文件,供下载.您只需点击更新按钮,就能得到最及时全面的开奖信息,省时省力. 2011年10月12日修改说明:已更新全部开奖数据.福彩3Dexcel文件中,因描述更新范围的高度小了,导致更新后,最下面内容会右移.如此文件单独存在,请直接下载.如已将

sqlserver 导出数据到Excel

1.导出非正式Excel EXEC master..xp_cmdshell 'bcp t.dbo.tcad out D:\MySelf\output\Temp.xls -c -q -S"." -U"sa" -P"sql2008"'--参数:S 是SQL服务器名:U是用户:P是密码 2.启用/停用xp_cmdshell -- To allow advanced options to be changed. EXEC sp_configure 'sh