使用 EPPlus 插件 在Unity 中进行 Excel 数据表读写
老规矩,直接上代码:
很简单,自己看一下就会。
EPPlus.dll 文件 自己下载也行,下载我的也行
都要把这个 EPPlus.dll 文件放到 Assets 文件夹下。
如果打包处理出错的话就把去下载我的文件吧。
把我给你的文件统一放到 Unity Assets 文件夹下就行了。
这个是打包出错时放的EPPlus支持库放到同一个文件夹内就行了
(列:资产/ EPPlus / ******);这个版本是2019.3.2f1请立即获取iTunes的库
不同的版本请立即获取iTunes库也是这六个文件在
Unityy_Editor \ 2019.3.2f1 \ Editor \ Data \ MonoBleedingEdge \ lib \ mono \ unity文件夹下。
链接: Unity_EPPlus 支持库
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using OfficeOpenXml;
using UnityEditor;
using System.IO;
using OfficeOpenXml.Style;
/// <summary>
/// Excel 数据表读写
/// </summary>
public class EPPlusExcel_ZH : MonoBehaviour
{
//文件夹路径
private string _FilePath;
//文件夹路径存储
private FileInfo _FileInfo;
ExcelWorksheet _Worksheet;
ExcelWorksheet _WorksheetNew;
void Start()
{
//路径
_FilePath = Application.streamingAssetsPath + "/Epplus.xlsx";
//获取Excel 文件路径
_FileInfo = new FileInfo(_FilePath);
//开启协程
StartCoroutine(EPPlus());
}
private IEnumerator EPPlus()
{
//Excel 数据赋予
using (ExcelPackage _ExcelPackage = new ExcelPackage(_FileInfo))
{
if (_ExcelPackage.Workbook.Worksheets["Epplus_Test"] == null)
{
//表格创建
_WorksheetNew = _ExcelPackage.Workbook.Worksheets.Add("Epplus_Test");
}
//获取数据表中第一张表格数据
_Worksheet = _ExcelPackage.Workbook.Worksheets[1];
//获取数据表中第一行第一列数据
string _Message = _Worksheet.Cells[1, 1].Value.ToString();
//数据表写入
_Worksheet.Cells[1, 1].Value = "A1";
_Worksheet.Cells["A2"].Value = "A2";
_Worksheet.SetValue(2, 2, "EPPlus");
//这是乘法的公式,意思是第三列乘以第四列的值赋值给第五列
_Worksheet.Cells["E2"].Formula = "C2*D2";
//这是求和公式,意思是第二行第三列的值到第四行第三例的值求和后赋给第五行第三列 并转移到 五行五列
_Worksheet.Cells[5, 3, 5, 5].Formula = string.Format("SUBTOTAL(9,{0})", new ExcelAddress(2, 3, 4, 3).Address);
//获取一个区域,区域范围是第七行第一列到第七行第五列
using (var _Range = _WorksheetNew.Cells[7, 1, 7, 5])
{
//粗体
_Range.Style.Font.Bold = true;
//设置单元格样式为无样式
_Range.Style.Fill.PatternType = ExcelFillStyle.None;
//设置单元格底色为红色
_Range.Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.Red);
//设置单元格字体颜色为黄色
_Range.Style.Font.Color.SetColor(System.Drawing.Color.Yellow);
}
//获取总Sheet页
int _SheetCount = _ExcelPackage.Workbook.Worksheets.Count;
//最大行
int _MaxRowNum = _Worksheet.Dimension.End.Row;
//最小行
int _MinRowNum = _Worksheet.Dimension.Start.Row;
//最大列
int _MaxColumnNum = _Worksheet.Dimension.End.Column;
//最小列
int _MinColumnNum = _Worksheet.Dimension.Start.Column;
//表格删除
_ExcelPackage.Workbook.Worksheets.Delete("Epplus_Test");
//保存数据表
_ExcelPackage.Save();
}
#if UNITY_EDITOR
//资源刷新
AssetDatabase.Refresh();
// 保存所有修改
AssetDatabase.SaveAssets();
#endif
yield return null;
}
}
暂时先这样吧,如果实在看不明白就留言,看到我会回复的。
路长远兮,哈哈哈,与君共勉。