unity导出wrod文档并输出表格

unity版本2020.3.35   

使用的 DocX库(该库不止可以导出Word一种格式)

Xceed.Document.NET.dll

Xceed.Words.NET.dll

导入两个dll库文件到Plugins特殊文件夹

接下来就可以直接写代码了

WordExporter.cs

using System.Collections.Generic;
using System.IO;
using UnityEngine;
using Xceed.Words.NET; //一定要引入库的命名空间
using Xceed.Document.NET;


public class WordExporter
{
    private static WordExporter instance = null;

    public static WordExporter GetInstance()
    {
        if (instance == null)
        {
            instance = new WordExporter();
            //Xceed.Words.NET.Licenser.LicenseKey = "";
        }
        return instance;
    }

    // 标题数组  标题的长度可以随意定义,没有限制
    public string[] titles = new string[]
    {
        "编号",
        "加载",
        "主动轮转速\n(r/min)",
        "从动轮转速\n(r/min)",
        "主动轮扭矩\n(N.m)",
        "从动轮扭矩\n(N.m)",
        "主动轮功率\n(W)",
        "从动轮功率\n(W)",
        "效率 (%)",
        "滑差率 (%)"
    };

    public void ExportWord(List<List<float>> tablePrint)
    {
        // 创建 Word 文档路径
        string filePath = Path.Combine(Application.streamingAssetsPath, "TableExport.docx");

        using (var document = DocX.Create(filePath))
        {
           // 添加标题段落
            var titleParagraph = document.InsertParagraph("实验数据表格");
            titleParagraph.FontSize(16).Bold().Alignment = Alignment.center;

            // 添加表格:行数为数据行数 + 表头行,列数为标题列数
            int rowCount = tablePrint.Count + 1;
            int colCount = titles.Length;

            var table = document.AddTable(rowCount, colCount);

            // 填写表头数据
            for (int i = 0; i < colCount; i++)
            {
                table.Rows[0].Cells[i].Paragraphs[0].Append(titles[i])
                    .Bold().FontSize(12).Alignment = Alignment.center;
            }

            // 填写表格数据
            for (int i = 0; i < tablePrint.Count; i++)
            {
                for (int j = 0; j < tablePrint[i].Count; j++)
                {
                    table.Rows[i + 1].Cells[j].Paragraphs[0].Append(tablePrint[i][j].ToString("F2"))
                        .FontSize(10).Alignment = Alignment.center;
                }
            }

      // 添加表格到文档
            document.InsertTable(table);

            // 保存文档
            document.Save();
        }

        Debug.Log($"Word文档已导出至: {filePath}");
    }
}

然后就可以自定义按钮或者其他触发方式来调用这个单例方法就可以导出到streamingAssetsPath文件夹下了,当然路径位置也是可以自己自定义的,方法比较简单,大多数都是用了DocX库的API,所以简单实用。

Unity是一款强大的游戏开发引擎,虽然它的主要用途是创建优秀的游戏,但也可以在一定程度上进行办公文档导出。要将Unity中的内容导出为Word文档,可以采用以下方法。 首先,在Unity中创建一个游戏场景或界面,将要导出文档内容以合适的方式展示出来,例如使用UI元素显示文本、图片等。 其次,可以使用Unity的插件来处理Word文档的生成和导出。有一些开源的插件可以在Unity Asset Store中找到和下载。这些插件提供了创建、编辑和导出Word文档的功能,可以通过简单的编程来操作。 使用这些插件,可以将Unity中的文本、图片和其他信息按照预先定义的格式插入到Word文档中。可以设置字体、字号、对齐方式等样式,使得导出文档符合需求。 另外,可以使用C#编程语言来自定义导出过程,根据需要添加更多的功能。例如,可以通过代码来自动填充一些固定文本,添加表格等。 使用上述方法,可以将Unity中的内容导出为Word文档。但需要注意的是,由于Unity不是专为文档处理设计的软件,因此存在一定的限制和局限性。在导出过程中可能会遇到一些格式上的挑战,需要仔细调整和解决。此外,插件的质量和稳定性也可能影响导出结果的准确性。因此,在选择插件时要注意评估其功能和用户评价。 总之,虽然Unity的主要目的不是用于文档处理,但通过使用插件和编写代码,我们仍然可以借助Unity将内容导出为Word文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值