赞
踩
Unity版本: 2021.3.25f1
1.EPPlus库:
a.引用EPPlus库:首先,需要在Unity项目中引用EPPlus库。可以通过从官方网站(https://epplussoftware.com/)下载EPPlus库的最新版本,并将其添加到Unity项目中。
b.创建Excel数据:在Unity中,使用C#脚本来创建Excel数据。在示例代码中,创建了一个名为MemoryStreamExample的MonoBehaviour类来处理Excel数据。在CreateExcelData方法中,使用EPPlus库创建一个Excel包,并向其中添加一个工作表。然后,使用嵌套的循环将数据写入工作表的单元格中。
c.保存Excel数据到内存流:EPPlus库提供了将Excel数据保存到内存流的功能。在示例代码的CreateExcelData方法中,使用MemoryStream来保存Excel数据。将Excel包保存到MemoryStream,然后使用ToArray方法将MemoryStream转换为字节数组。
d.保存Excel数据到本地:在示例代码的SaveExcelToFile方法中,使用File.WriteAllBytes方法将Excel数据的字节数组写入到本地文件。提供文件路径作为参数,以便将数据保存到指定位置。
优点
灵活性:EPPlus库提供了丰富的功能和灵活的API,可以满足各种Excel数据处理需求。
性能:EPPlus库具有优化的性能,特别适用于处理大量数据。使用EPPlus库的内存流功能可以避免磁盘I/O操作,提高性能。
跨平台支持:EPPlus库是基于.NET标准的,因此可以在Unity等多个平台上使用。
开源和免费:EPPlus库是开源的,可以免费使用和修改。
using OfficeOpenXml; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; public class MemoryStreamExample : MonoBehaviour { byte[] steamByt; void Start() { steamByt = CreateExcelData(); SaveExcelToFile(steamByt, Application.streamingAssetsPath + "/test.xlsx"); } public byte[] CreateExcelData() { using (ExcelPackage package = new ExcelPackage()) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");// 写入数据 for (int row = 1; row <= 1000; row++) { for (int column = 1; column <= 1000; column++) { worksheet.Cells[row, column].Value = "Data"; // 写入数据到单元格 } } // 保存Excel数据到内存流 using (MemoryStream memoryStream = new MemoryStream()) { package.SaveAs(memoryStream);// 转换为字节数组 byte[] excelData = memoryStream.ToArray(); return excelData; } } } public void SaveExcelToFile(byte[] excelData, string filePath) { File.WriteAllBytes(filePath, excelData); } }
在Start方法中,调用CreateExcelData方法创建Excel数据,并将返回的字节数组保存到steamByt变量中。然后,调用SaveExcelToFile方法将字节数组保存到本地文件。
2.NPOI库
a.引用NPOI库:首先,需要在Unity项目中引用NPOI库。可以通过从NPOI的GitHub仓库(https://github.com/nissl-lab/npoi)下载最新版本的NPOI库,并将其添加到Unity项目中。
b.创建Excel数据:在Unity中,使用C#脚本来创建Excel数据。在示例代码中,创建了一个名为MemoryStreamExample的MonoBehaviour类来处理Excel数据。在CreateExcelData方法中,使用NPOI库创建一个工作簿(Workbook)和一个工作表(Sheet)。然后,使用嵌套的循环将数据写入工作表的单元格中。
c.保存Excel数据到内存流:NPOI库提供了将Excel数据保存到内存流的功能。在示例代码的CreateExcelData方法中,使用MemoryStream来保存Excel数据。将工作簿写入到MemoryStream,然后使用ToArray方法将MemoryStream转换为字节数组。
d.保存Excel数据到本地:在示例代码的SaveExcelToFile方法中,使用File.WriteAllBytes方法将Excel数据的字节数组写入到本地文件。提供文件路径作为参数,以便将数据保存到指定位置。
优点
灵活性:NPOI库提供了丰富的功能和灵活的API,可以满足各种Excel数据处理需求。
跨平台支持:NPOI库是基于.NET标准的,因此可以在Unity等多个平台上使用。
开源和免费:NPOI库是开源的,可以免费使用和修改。
using System.Collections; using System.Collections.Generic; using UnityEngine; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System.IO; public class MemoryStreamExample : MonoBehaviour { byte[] excelData; void Start() { excelData = CreateExcelData(); SaveExcelToFile(excelData, Application.streamingAssetsPath + "/test.xlsx"); } public byte[] CreateExcelData() { IWorkbook workbook = new XSSFWorkbook(); ISheet sheet = workbook.CreateSheet("Sheet1");// 写入数据 for (int row = 0; row < 1000; row++) { IRow excelRow = sheet.CreateRow(row); for (int column = 0; column < 1000; column++) { ICell cell = excelRow.CreateCell(column); cell.SetCellValue("Data"); } } // 保存Excel数据到内存流 using (MemoryStream memoryStream = new MemoryStream()) { workbook.Write(memoryStream); byte[] excelData = memoryStream.ToArray(); return excelData; } } public void SaveExcelToFile(byte[] excelData, string filePath) { File.WriteAllBytes(filePath, excelData); } }
在保存的时候还是会有卡顿,需要等等就可以看到生成的文档了.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。