金喜正规买球

国产化Excel处理组件Spire.XLS教程:C# 读取 CSV 文件,从基础读取到 DataTable 转换

翻译|行业资讯|编辑:吉炜炜|2025-09-10 10:36:24.090|阅读 1 次

概述:CSV(逗号分隔值)作为轻量级数据交换格式,广泛应用于财务报表、用户数据、分析结果等场景。在.NET 开发中,高效处理和解析 CSV 文件是一项基础且重要的技能。本文将介绍如何借助Spire.XLS for .NET 通过 C# 读取 CSV 文件,包括直接读取和将 CSV 转换为 DataTable 两种方式。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

CSV(逗号分隔值)作为轻量级数据交换格式,广泛应用于财务报表、用户数据、分析结果等场景。在.NET 开发中,高效处理和解析 CSV 文件是一项基础且重要的技能。本文将介绍如何借助Spire.XLS for .NET 通过 C# 读取 CSV 文件,包括直接读取和将 CSV 转换为 DataTable 两种方式。

Spire.XLS for .NET试用下载

欢迎加入Spire技术交流Q群(125237868),与更多小伙伴一起提升文档开发技能~


安装 Spire.XLS 库

Spire.XLS for .NET 不仅是专业的 Excel 处理工具,还对 CSV 文件提供了完善支持,无需依赖 Microsoft Office,处理效率高且跨平台兼容。

安装步骤:

  • 打开 Visual Studio 项目,在解决方案资源管理器中右键点击项目;
  • 选择「管理 NuGet 包」,搜索「Spire.XLS」;
  • 点击「安装」完成依赖添加。

或通过程序包管理器控制台执行命令:

PM> Install-Package Spire.XLS

C# 读取 CSV 文件内容

以下 C# 代码示例演示如何加载 CSV 文件、访问其中数据,并以表格格式将内容输出到控制台。

using Spire.Xls;

namespace ReadCSV
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 实例
            Workbook workbook = new Workbook();

            // 加载 CSV 文件
            workbook.LoadFromFile("库存表.csv", ",");

            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 获取已使用的范围
            CellRange range = sheet.AllocatedRange;

            // 遍历行和列
            for (int row = 1; row <= range.RowCount; row++)
            {
                for (int col = 1; col <= range.ColumnCount; col++)
                {
                    // 获取单元格值
                    string cellValue = range[row, col].Value;
                    Console.Write(cellValue + "\t");
                }
                Console.WriteLine();
            }

            Console.ReadLine();
        }
    }
}

核心说明:

  • Workbook 类:作为 CSV 文件的内存容器,统一处理逻辑。
  • Workbook.LoadFromFile():用于加载 CSV 文件,参数说明如下:
    • 文件路径:如"库存表.csv"。
    • 分隔符:","(逗号 - CSV 的默认分隔符)。
  • Worksheet.AllocatedRange:仅获取包含数据的单元格范围。
  • CellRange[row, col].Value:用于获取特定单元格的值。

运行效果:CSV 数据将以清晰的制表符分隔格式输出到控制台。

若需要通过 VB.NET 读取 CSV 文件,可使用 C# 到 VB.NET转换器 直接转换代码

C# 读取 CSV 到 DataTable

DataTable 是.NET 中灵活的内存数据结构,便于筛选、排序、绑定 UI 等高级操作。以下代码演示如何将 CSV 直接转换为 DataTable:

using Spire.Xls;
using System.Data;

namespace ReadCSV
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 实例
            Workbook workbook = new Workbook();

            // 加载 CSV 文件
            workbook.LoadFromFile("库存表.csv", ",");

            // 获取第一个工作表
            Worksheet worksheet = workbook.Worksheets[0];

            // 将工作表中的数据导出到 DataTable
            DataTable dataTable = worksheet.ExportDataTable();

            // 获取行和列的数量
            Console.WriteLine("\n转换完成!DataTable信息:");
            Console.WriteLine($"列数:{dataTable.Columns.Count}");
            Console.WriteLine($"行数:{dataTable.Rows.Count}");
            Console.WriteLine();

            // 打印列名
            for (int i = 0; i < dataTable.Columns.Count; i++)
            {
                Console.Write(dataTable.Columns[i].ColumnName + "  | ");
            }
            Console.WriteLine();
            Console.WriteLine("----------------------------------------------------------");

            // 打印行数据
            for (int i = 0; i < dataTable.Rows.Count; i++)
            {
                for (int j = 0; j < dataTable.Columns.Count; j++)
                {                
                    string value = dataTable.Rows[i][j].ToString();

                    Console.Write(value + "\t");
                }
                Console.WriteLine(); 
            }
        }
    }
}

核心说明:

  • Worksheet.ExportDataTable():一键完成 CSV 到 DataTable 的转换。
  • 元数据与内容访问:可通过 DataTable 的 Columns 和 Rows 属性快速获取元数据与内容。
  • 高级操作:转换后的数据支持与数据库、UI 组件(如 DataGridView)直接交互。

运行效果:输出包含列名、数据行及统计信息的结构化结果。


若需分析、计算或格式化数据,您可以

两种方法的适用场景

根据实际需求选择合适的方法:

方法 适用场景 典型用例
直接读取 CSV 快速验证数据、简单打印输出 检查 CSV 文件是否正确加载、预览数据
转换为 DataTable 复杂数据处理、绑定 UI 或数据库 筛选行、排序数据或保存到SQL Server

结论

借助 Spire.XLS for .NET,C# 处理 CSV 文件变得简单高效:直接读取适用于快速验证,转换为 DataTable 则便于高级操作。两种方法均无需依赖 Office,且代码可直接复用(只需修改文件路径)。

常见问题

问题1:为什么选择用 Spire.XLS 读取 CSV 文件?

:虽然 .NET Framework 提供了内置的 StreamReader 处理 CSV 文件,但 Spire.XLS 的优势在于:

  • 无需依赖:不需要安装 Microsoft Excel 或 Office
  • 高性能:针对大型 CSV 文件的高效处理进行了优化
  • 灵活性:提供多种读取 CSV 数据的方式,可按需选择
  • 跨平台:兼容.NET Framework/.NET Core/.NET Standard 等多框架

问题2:如何处理非逗号分隔的文件(如分号或制表符)?

:只需将 LoadFromFile() 的第二个参数替换为实际分隔符即可:

// 读取制表符分隔的文件
workbook.LoadFromFile("data.txt", "\t");

// 读取分号分隔的文件
workbook.LoadFromFile("data.csv", ";");

// 读取竖线分隔的文件
workbook.LoadFromFile("data.csv", "|");

问题3:能否读取 CSV 中的指定行或列?

:可以。通过定义范围实现精准读取,例如跳过标题行只取特定列:

// 定义特定范围
int startRow = 2;   // 从第2行开始(跳过标题)
int endRow = 4;     // 在第4行结束
int startCol = 2;   // 从第2列开始
int endCol = 6;     // 在第6列结束


// 遍历行和列
for (int row = startRow; row <= endRow; row++)
{
   for (int col = startCol; col <= endCol; col++)
   {
      // 获取单元格值
      string cellValue = worksheet.Range[row, col].Value;
      Console.Write(cellValue + "\t"); 
   }
   Console.WriteLine();
}
注意Spire.XLS 采用 1-based 索引(与Excel一致),因此第一行/列编号为1(而非0)。


欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询 ;技术交流Q群(125237868

————————————————————————————————————————

关于慧都科技:

慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技E-iceblue的官方授权代理商,提供E-iceblue系列产品免费试用,咨询,正版销售等于一体的专业化服务E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化,帮助企业高效构建文档处理的应用程序。



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@fc6vip.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP