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,所以简单实用。