unity3d 导出 Excel

摘要:
我需要统一导出为Excel格式,并尝试一些方法。我还没有成功地使用c#的com组件,也不知道如何用unity(849288321@qq.com),谢谢。),然而,我后来找到了这个org.in2bits.MyXls。我需要导入这个dll(有很多在线),并很好地使用它。我写了一个小例子,仅供参考,使用Un

我在unity里需要导出成Excel格式,试了一些方法,其中用c#的com组件的我还没成功不知道该怎么在unity里调用,(如果哪位大哥用别的方法在unity里成功了,可以交流下,最好给我一个小demo(849288321@qq.com),谢谢啦.),不过后来找到了这个org.in2bits.MyXls  ,需要导入这个dll(网上有很多),然后用着还挺好用,我这写的一个小例子仅供参考,

using UnityEngine;
using System.Collections;
using org.in2bits.MyXls;
using System.Collections.Generic;
public class TestInfo
{
    public string name;
    public string id;
    public string num;
};
public class ExcelMakerManager  {

    public static ExcelMakerManager eInstance;
    public static ExcelMakerManager CreateExcelMakerManager() 
    {
        if(eInstance==null)
        {
            eInstance = new ExcelMakerManager();
        }
        return eInstance;
    }
    //链表为 物体信息 .
    public void ExcelMaker(string name, List<TestInfo> listInfo)
    {
        XlsDocument xls = new XlsDocument();//新建一个xls文档
        xls.FileName = name;// @"D:	ests.xls";//设定文件名

        //Add some metadata (visible from Excel under File -> Properties)
        xls.SummaryInformation.Author = "xyy"; //填加xls文件作者信息
        xls.SummaryInformation.Subject = "test";//填加文件主题信息

        string sheetName = "Sheet0";
        Worksheet sheet = xls.Workbook.Worksheets.AddNamed(sheetName);//填加名为"chc 实例"的sheet页
        Cells cells = sheet.Cells;//Cells实例是sheet页中单元格(cell)集合

        int rowNum = listInfo.Count;
        int rowMin = 1;
        int row = 0;

        for (int x = 0; x < rowNum + 1; x++)
        {
            if (x == 0)
            {
                //根据具体的物体信息 .需要重新写
                cells.Add(1, 1, "名字");
                cells.Add(1, 2, "ID");
                cells.Add(1, 3, "数量");
            }
            else
            {
                cells.Add(rowMin + x, 1, listInfo[row].id);
                cells.Add(rowMin + x, 2, listInfo[row].name);
                cells.Add(rowMin + x, 3, listInfo[row].num);
                row++;
            }
        }
        xls.Save();
    }
}

然后下面是调用上面的这个方法

using UnityEngine;
using System.Collections;
using System.IO;
using org.in2bits.MyXls;
using System;
using System.Collections.Generic;

public class test : MonoBehaviour
{

    string path;
    TestInfo test1;
    TestInfo test2;
    TestInfo test3;
    List<TestInfo> listInfos;
    // Use this for initialization
    void Start()
    {
        ExcelMakerManager.CreateExcelMakerManager();

        //                               --测试数据 
        test1 = new TestInfo();
        test1.id = "one";
        test1.name = "test1";
        test1.num = "x";

        test2 = new TestInfo();
        test2.id = "two";
        test2.name = "test2";
        test2.num = "22";

        test3 = new TestInfo();
        test3.id = "tree";
        test3.name = "test3";
        test3.num = "333";

        listInfos = new List<TestInfo>();
        listInfos.Add(test1);
        listInfos.Add(test2);
        listInfos.Add(test3);
        //                     --测试数据
        // ManagerExcel.CreateE();
    }

    // Update is called once per frame
    void Update()
    {

    }
    void OnGUI()
    {
        if (GUI.Button(new Rect(100, 0, 100, 100), "aa"))
        {
            PrintExcel();
            Debug.Log("aaaa");
        }
    }
    public void PrintExcel()
    {
        if (!Directory.Exists(Application.dataPath + "/Prints"))
        {
            Directory.CreateDirectory(Application.dataPath + "/Prints");
        }
        path = Application.dataPath + "/Prints/Excel_"
                         + System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") + ".xls";
        ExcelMakerManager.eInstance.ExcelMaker(path, listInfos);
    }
}

至于改字体啥的网上都有相应的例子.可以自己去看看...这里就不多说了.

结果如图:


unity3d 导出 Excel第1张


免责声明:文章转载自《unity3d 导出 Excel》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇读懂 Deployment YAML[转载]date命令时间转换下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Unity 几何着色器

Unity 几何着色器 shaderGeometry Shader几何着色器 Unity 几何着色器如果学习不能带来价值,那将毫无意义 简介     在顶点和片段着色器之间有一个可选的着色器,叫做几何着色器(Geometry Shader)。几何着色器以一个或多个表示为一个单独基本图形(primitive)即图元的顶点作为输入,比如可以是一...

使用Unity开发Android的几种调试方法

前言 本文举例几种Android 调试的方法(PS:我是通过unity引擎来开发安卓游戏) Eclipse + adt 查看LOG 1、为Eclipse 装上adt 插件 2、打开Eclipse 的Logcat,在搜索栏中输入 tag:unity Android Studio 自带adt Android SDK自带的 Monotor 1、找到 andro...

(转)Unity内建图标列表

用法 Gizmos.DrawIcon(transform.position, "PointLight Gizmo"); UnityEditor.EditorGUIUtility.FindTexture("PointLight Gizmo"); Unity Editor Built-in Icons Icons what can load usingE...

【Unity优化】图形优化系列02:CPU优化

CPU在渲染管线中的工作 1)检测需要被绘制的对象 2)准备发送给GPU的指令 3)向GPU发送指令 多线程渲染 0)Unity 包含三种线程类型:主线程、渲染线程、工作线程 1)主线程:大部分的CPU工作,和部分渲染任务 2)渲染线程:专门用于CPU向GPU发送指令 3)工作线程:执行单独的任务(比如剔除、网格蒙皮) 4)不是所有平台都支持多线程渲染 多...

chrome提示"安装unity web player"

网页浏览Unity3D制作的效果时,出现提示"安装unity web player"。解决办法如下: →在浏览器中输入:chrome://flags/#enable-npapi 在NPAPI中,点击"启用"。在Native Client中,点击"启用"。 →在浏览器中输入:chrome://restart →依然出现提示:unity failed to d...

Unity3d Shader

Unity3d Shader 预览Surface Shader主要用来实现光照相关处理,可能更简洁。Vertex and Fragment Shader如果不与光照交互, 则可以用这个shader,更录活fixed function shaders固定shader主要用于老旧卡ShaderLab不管写哪种shader,最终通过shaderLab实现,其组织结...