unity解析excel的两个方法

简介: unity解析excel的两个方法

1、第一种 文件流解析Excel

要使用文件流(FileStream)解析Excel文件,你可以结合使用适当的库和组件,如EPPlus、NPOI或ClosedXML。以下是一个基本的示例,演示如何使用文件流解析Excel文件:

using System.IO;
using OfficeOpenXml;
public void ParseExcelUsingFileStream(string filePath)
{
    using (var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
    {
        using (var excelPackage = new ExcelPackage(fileStream))
        {
            // 获取第一个工作表
            var worksheet = excelPackage.Workbook.Worksheets[0];
            // 遍历工作表的行
            for (int row = 1; row <= worksheet.Dimension.End.Row; row++)
            {
                // 读取单元格中的数据
                var cellValue = worksheet.Cells[row, 1].Value;
                // 处理数据
                if (cellValue != null)
                {
                    // 对读取到的数据进行操作
                    // ...
                }
            }
        }
    }
}

在上述示例中,使用文件流从指定的Excel文件路径创建一个FileStream对象。然后,将该FileStream对象传递给ExcelPackage以打开Excel文件。

接下来,获取第一个工作表,并遍历每一行。使用worksheet.Cells[row, column]语法我可以读取指定行和列的单元格值。

请确保在使用完FileStream和ExcelPackage后及时释放相关资源。在上面的示例中,我使用了using语句来自动处理资源的释放。

第二种 DataSet解析excel

要使用DataSet解析Excel文件,你可以借助ADO.NET提供的功能。以下是一个使用DataSet解析Excel文件的示例代码:

using System.Data;
using System.Data.OleDb;
public DataSet ParseExcelToDataSet(string filePath)
{
    string connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={filePath};Extended Properties='Excel 12.0;HDR=YES;IMEX=1;'";
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        connection.Open();
        DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
        if (schemaTable == null)
        {
            throw new Exception("未找到任何工作表信息");
        }
        var dataTableList = new List<DataTable>();
        foreach (DataRow row in schemaTable.Rows)
        {
            string tableName = row["TABLE_NAME"].ToString();
            OleDbCommand command = new OleDbCommand($"SELECT * FROM [{tableName}]", connection);
            OleDbDataAdapter adapter = new OleDbDataAdapter(command);
            DataTable dataTable = new DataTable(tableName);
            adapter.Fill(dataTable);
            dataTableList.Add(dataTable);
        }
        DataSet dataSet = new DataSet();
        dataSet.Tables.AddRange(dataTableList.ToArray());
        return dataSet;
    }
}

在上述示例中,首先创建了一个OLE DB连接字符串,指定Excel文件的路径和相关属性。然后,使用这个连接字符串实例化 OleDbConnection 对象。

通过打开连接,使用 GetOleDbSchemaTable 方法获取 Excel 文件中的工作表信息,并返回一个包含这些信息的 DataTable。

接下来,遍历 DataTable 中的每一行,根据表名执行 Select 语句,读取数据到 DataTable 中。

最后,创建一个 DataSet 对象,并将所有的 DataTable 添加到 DataSet 中,然后返回该 DataSet。

注意,使用 DataSet 解析 Excel 文件时,默认情况下只读取第一个数据表的数据。如果 Excel 文件包含多个工作表,并且你希望读取所有工作表的数据,请相应地修改代码。

此外,请确保你的项目引用了适当的 ADO.NET 程序集和使用的 Excel 版本相对应的驱动程序。

最后

这是个不常用的处理方法,了解一下就行了。

相关文章
|
10月前
|
监控 安全 网络安全
深入解析PDCERF:网络安全应急响应的六阶段方法
PDCERF是网络安全应急响应的六阶段方法,涵盖准备、检测、抑制、根除、恢复和跟进。本文详细解析各阶段目标与操作步骤,并附图例,助读者理解与应用,提升组织应对安全事件的能力。
1429 89
|
11月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
2439 65
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
11月前
|
存储 Java 开发者
浅析JVM方法解析、创建和链接
上一篇文章《你知道Java类是如何被加载的吗?》分析了HotSpot是如何加载Java类的,本文再来分析下Hotspot又是如何解析、创建和链接类方法的。
518 132
|
9月前
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
597 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
|
11月前
|
安全 Ubuntu Shell
深入解析 vsftpd 2.3.4 的笑脸漏洞及其检测方法
本文详细解析了 vsftpd 2.3.4 版本中的“笑脸漏洞”,该漏洞允许攻击者通过特定用户名和密码触发后门,获取远程代码执行权限。文章提供了漏洞概述、影响范围及一个 Python 脚本,用于检测目标服务器是否受此漏洞影响。通过连接至目标服务器并尝试登录特定用户名,脚本能够判断服务器是否存在该漏洞,并给出相应的警告信息。
662 84
|
8月前
|
JSON 监控 网络协议
Bilibili直播信息流:连接方法与数据解析
本文详细介绍了自行实现B站直播WebSocket连接的完整流程。解析了基于WebSocket的应用层协议结构,涵盖认证包构建、心跳机制维护及数据包解析步骤,为开发者定制直播数据监控提供了完整技术方案。
|
8月前
|
安全 IDE Java
重学Java基础篇—Java Object类常用方法深度解析
Java中,Object类作为所有类的超类,提供了多个核心方法以支持对象的基本行为。其中,`toString()`用于对象的字符串表示,重写时应包含关键信息;`equals()`与`hashCode()`需成对重写,确保对象等价判断的一致性;`getClass()`用于运行时类型识别;`clone()`实现对象复制,需区分浅拷贝与深拷贝;`wait()/notify()`支持线程协作。此外,`finalize()`已过时,建议使用更安全的资源管理方式。合理运用这些方法,并遵循最佳实践,可提升代码质量与健壮性。
248 1
|
8月前
|
传感器 监控 Java
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
332 5
|
11月前
|
数据可视化 项目管理
个人和团队都好用的年度复盘工具:看板与KPT方法解析
本文带你了解高效方法KPT复盘法(Keep、Problem、Try),结合看板工具,帮助你理清头绪,快速完成年度复盘。
855 7
个人和团队都好用的年度复盘工具:看板与KPT方法解析
|
10月前
|
人工智能 监控 数据可视化
提升开发效率:看板方法的全面解析
随着软件开发复杂度提升,并行开发模式下面临资源分配不均、信息传递延迟及缺乏全局视图等瓶颈问题。看板工具通过任务状态实时可视化、流量效率监控和任务依赖管理,帮助团队直观展示和解决这些瓶颈。未来,结合AI预测和自动化优化,看板工具将更高效地支持并行开发,成为驱动协作与创新的核心支柱。

推荐镜像

更多
  • DNS