IRONSOFTWAREHOME
USING IRONXL

C# CSV 转 XLSX:将 CSV 文件转换为 Excel 格式

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

将 CSV 文件转换为 XLSX 格式,可解锁逗号分隔值文件无法提供的电子表格功能。CSV 仅存储原始表格数据,而 Excel XLSX 格式支持公式、多工作表、图表、单元格格式设置和数据验证——这些正是现代商业应用程序所必需的功能。 使用合适的库,转换过程非常简单,只需几行 C# 代码即可完成。

IronXL 是一个 .NET 库,可直接处理此类转换,无需依赖 Microsoft Office 或 Open XML SDK。 它读取源 CSV 文件,解析分隔符分隔的数据,并生成完全符合标准的 XLSX 工作簿。 通过 NuGet 安装并 开始免费试用 以跟随下面的代码样本。

您如何在 C# 中将 CSV 文件转换为 XLSX 格式?

核心转换功能包括加载 CSV 文件并将其保存为 Excel 格式。 IronXL提供WorkBook.LoadCSV,它解析分隔的源数据并创建一个可供导出的工作簿。 该方法接受文件路径、目标 Excel 格式以及分隔符字符。

using IronXL;

// Load CSV file and convert to XLSX format
WorkBook workbook = WorkBook.LoadCSV("data.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Access the default worksheet containing CSV data
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Save as Excel XLSX file
workbook.SaveAs("output.xlsx");

输出

C# CSV转XLSX:完整开发者指南:图片1 - CSV到Excel转换示例输出

LoadCSV方法接受三个关键参数:文件名、目标Excel格式常量和源文件中使用的列表分隔符。此方法在创建结构正确的XLSX文件时保留原始CSV表格中的所有字符串数据和数值。WorkBook类作为所有电子表格操作的中心。 加载后,可通过工作表访问 CSV 数据,以便在保存最终 Excel 文件前进行进一步处理。

如果要加载现有的XLSX文件而不是CSV,请使用WorkBook.Load("file.xlsx"),它会自动根据文件扩展名检测格式。 这使得构建能够接受 CSV 或 Excel 输入并将其规范化为单一输出格式的管道变得非常简单。

将 CSV 转换为 Excel 格式有哪些好处?

对于大多数数据管理场景而言,XLSX 格式相比普通 CSV 具有显著优势:

  • 多工作表:Excel 文件支持在单个工作簿中包含多个工作表,从而实现有条理的数据存储,这是 CSV 文件无法比拟的。 一个 XLSX 文件可包含数十个工作表,涵盖不同的时间段、地区或类别。
  • 公式支持:可直接在单元格中编写复杂的计算、聚合和条件逻辑。 当源数据发生变化时,Excel 公式会自动重新计算,从而无需手动重新处理 CSV 文件。
  • Visual Charts:根据工作表数据创建柱状图、折线图、饼图及其他可视化图表。 IronXL 支持通过 API 直接创建图表,因此图表将嵌入到 XLSX 文件中。
  • 单元格格式设置:控制字体、颜色、边框和数字格式,以制作Professional文档。 CSV 文件仅存储原始值; XLSX 既保存了数据,也保留了显示层。
  • 数据验证:将单元格输入限制为特定值或范围,从而防止在与最终用户共享的文件中出现数据输入错误。
  • 密码保护:通过密码保护工作表和工作簿以控制读写权限,这是 CSV 格式完全不具备的功能。

这些功能使 XLSX 格式成为报告、仪表盘、财务模型以及任何需要超越原始数据存储功能的应用程序的标准选择。

如何在.NET项目中安装IronXL ?

IronXL 以 NuGet 包的形式发布。 请通过 Visual Studio 中的"包管理器控制台"进行安装:

PM > Install-Package IronXL.Excel

或使用.NET CLI:

dotnet add package IronXL.Excel

安装后,将using IronXL;添加到任何处理电子表格的文件中。 该软件包支持 .NET Framework 4.6.2 及以上版本、.NET Core 3.1 及以上版本,以及 .NET 5 至 .NET 10 版本,并支持 Windows、Linux、macOS、Docker 和 Azure 部署环境。

无需额外的运行时依赖项,也无需安装 Microsoft Office。 IronXL 通过自带的解析器和写入器读写 XLSX 文件,因此非常适合无法安装 Office 的服务器端和无头部署场景。

在转换过程中如何处理 CSV 编码?

许多 CSV 文件源自旧系统、国际数据库或使用非 ASCII 字符的第三方导出数据。 正确处理编码可确保生成的 XLSX 文件中特殊字符和国际文本保持完整。

using IronXL;
using System.Text;

// Load CSV with explicit encoding specification
WorkBook workbook = WorkBook.LoadCSV("international-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",",
    encoding: Encoding.UTF8);

// Access the worksheet containing the encoded data
WorkSheet sheet = workbook.DefaultWorkSheet;

// Inspect a cell to verify encoding was preserved
string cellValue = sheet["A1"].StringValue;

// Save the converted Excel file
workbook.SaveAs("encoded-output.xlsx");

输出 XLSX 文件

C# CSV转XLSX:完整开发者指南:图片2 - 全部编码处理的CSV到XLSX转换

IronXL 能自动检测常见编码格式,包括大多数标准 CSV 文件使用的 UTF-8 编码。 对于非标准编码的文件,如Windows-1252、ISO-8859-1或Shift-JIS,请将LoadCSV调用。 Microsoft Learn 上的 Encoding 类文档列出了所有受支持的编码名称。

从远程服务器提取CSV数据时,使用LoadCSV加载。 此模式适用于云托管的 .NET 应用程序,其中 CSV 文件作为第三方 API 的 HTTP 响应返回。

如何在 CSV 转换后应用单元格格式?

原始 CSV 数据不包含任何格式信息。 转换为 XLSX 格式后,请应用数字格式、字体和背景颜色,以确保电子表格内容清晰易读且 Professional。

using IronXL;
using IronXL.Styles;

// Load CSV data
WorkBook workbook = WorkBook.LoadCSV("sales-report.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

WorkSheet sheet = workbook.DefaultWorkSheet;

// Format the header row with bold text and background color
Range headerRow = sheet["A1:Z1"];
headerRow.Style.Font.Bold = true;
headerRow.Style.SetBackgroundColor("#4472C4");
headerRow.Style.Font.Color = "#FFFFFF";

// Apply currency format to a numeric column
Range priceColumn = sheet["C2:C100"];
priceColumn.Style.NumberFormat = "$#,##0.00";

// Auto-fit column widths for readability
sheet.AutoSizeColumn(0);
sheet.AutoSizeColumn(1);
sheet.AutoSizeColumn(2);

workbook.SaveAs("formatted-report.xlsx");

IronXL通过Style属性公开单元格和范围样式,这与Excel UI中可用的格式选项相映。 数字格式遵循微软文档中规定的 Excel 数字格式语法SetBackgroundColor方法接受十六进制颜色字符串,从而简化了将品牌颜色应用于生成报告的过程。 查看完整单元格格式 API 参考以获取可用的样式属性。

如何在转换 CSV 数据后添加图表?

一旦 Excel 工作簿中存在 CSV 数据,IronXL 即可直接基于该数据创建图表。 图表可将原始数据转化为可视化洞察,且无需在服务器上安装 Microsoft Excel。

using IronXL;
using IronXL.Drawing.Charts;

// Load CSV and convert to Excel format
WorkBook workbook = WorkBook.LoadCSV("sales-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

WorkSheet worksheet = workbook.DefaultWorkSheet;

// Create a column chart from the converted CSV data
IChart chart = worksheet.CreateChart(ChartType.Column, 10, 0, 25, 10);

// Add data series from the worksheet ranges
IChartSeries series = chart.AddSeries("A2:A10", "B2:B10");
series.Title = "Monthly Sales";

// Configure chart appearance
chart.SetTitle("Sales Performance");
chart.SetLegendPosition(LegendPosition.Bottom);

// Plot the chart and save the workbook
chart.Plot();
workbook.SaveAs("sales-with-chart.xlsx");

输出

C# CSV转XLSX:完整开发者指南:图片3 - 将CSV文件转换为带有图表的Excel文件的输出

CreateChart方法接受图表类型和四个定位参数(顶行、左列、底行、右列)。 AddSeries方法将工作表单元格范围链接到图表轴,创建出随基础数据变化而更新的动态可视化。 IronXL通过ChartType枚举支持柱状图、条形图、折线图、面积图和饼图类型。 有关支持的图表配置完整列表,请参阅 IronXL 图表教程

如何将 CSV 转换为 DataTable,然后导出到 Excel?

对于需要在导出之前进行数据操作的场景,通过DataTable转换CSV数据提供了最大的灵活性。 这种方法允许开发人员在转换过程中使用标准的 .NET Standard 数据访问模式对行进行过滤、转换、排序或验证。

using IronXL;
using System.Data;

// Load CSV file into workbook
WorkBook sourceWorkbook = WorkBook.LoadCSV("input.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

// Convert worksheet to DataTable for manipulation
DataTable table = sourceWorkbook.DefaultWorkSheet.ToDataTable(true);

// Filter rows -- keep only rows where the third column value is greater than 100
DataRow[] filtered = table.Select("Column3 > 100");
DataTable filteredTable = filtered.Length > 0 ? filtered.CopyToDataTable() : table.Clone();

// Create new workbook from modified data
WorkBook outputWorkbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet outputSheet = outputWorkbook.CreateWorkSheet("Processed Data");

// Import filtered DataTable back into Excel
outputSheet.LoadFromDataTable(filteredTable, true);

// Save the final XLSX file
outputWorkbook.SaveAs("processed-output.xlsx");

输出

C# CSV转XLSX:完整开发者指南:图片4 - CSV到DataTable再到XLSX的输出

ToDataTable方法将工作表数据导出到.NET DataTable,布尔参数控制是否将第一行视为列标题。 true时,将列标题写作第一行。 这种双向转换功能使 CSV 导入与 Excel 输出之间能够充分利用 LINQ 和 ADO.NET 操作。 查看 IronXL DataTable 文档 以获取更多选项。

如何将 XLSX 文件保存到流中而非文件路径?

服务器端应用程序通常需要将 Excel 文件直接作为 HTTP 响应返回,而非将临时文件写入磁盘。 IronXL支持保存工作簿到MemoryStream用于此目的。

using IronXL;
using System.IO;

// Load and convert CSV data
WorkBook workbook = WorkBook.LoadCSV("report-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

WorkSheet sheet = workbook.DefaultWorkSheet;

// Save workbook to a memory stream instead of a file
using MemoryStream stream = new MemoryStream();
workbook.SaveAs(stream);

// Reset stream position for reading
stream.Position = 0;

// The stream is now ready to pass to an HTTP response, upload to cloud storage,
// or attach to an email. For ASP.NET Core:
// return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "report.xlsx");

// Write bytes to verify stream contains XLSX data
byte[] xlsxBytes = stream.ToArray();
Console.WriteLine($"Generated XLSX size: {xlsxBytes.Length} bytes");

将数据保存到流中可节省磁盘读写操作,并省去了清理临时文件的步骤。 此模式广泛应用于 ASP.NET Core 文件下载端点,其中 XLSX 文件是按需生成的。 SaveAs(Stream)重载将完整、有效的XLSX归档写入任何可写的流实例。

如何在转换后的工作簿中处理多个工作表?

一个 XLSX 工作簿可以包含多个工作表。 转换 CSV 文件后,工作簿默认包含一个工作表。 可以通过编程方式创建额外的表格来整理相关数据。

using IronXL;

// Load primary CSV data
WorkBook workbook = WorkBook.LoadCSV("quarterly-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

// Rename the default sheet created from the CSV
WorkSheet q1Sheet = workbook.DefaultWorkSheet;
q1Sheet.Name = "Q1 Data";

// Create additional worksheets for summary information
WorkSheet summarySheet = workbook.CreateWorkSheet("Summary");

// Write summary headers and formulas
summarySheet["A1"].Value = "Total Records";
summarySheet["B1"].Formula = $"=COUNTA('{q1Sheet.Name}'!A:A)-1";

summarySheet["A2"].Value = "Data Sheet";
summarySheet["B2"].Value = q1Sheet.Name;

// Save the multi-sheet workbook
workbook.SaveAs("multi-sheet-report.xlsx");

CreateWorkSheet方法将新的空白表添加到工作簿中。 可以通过名称或索引通过workbook.WorkSheets访问表单。 跨表公式引用使用标准Excel符号'SheetName'!CellRef。 有关多表操作的更多信息,请参阅 IronXL 多工作表指南

下一步计划是什么?

using IronXL 在 C# 中将 CSV 文件转换为 XLSX 只需几行代码,即可生成完全兼容的 Excel 工作簿,且无需依赖 Microsoft Office。 上述示例涵盖了完整的操作流程——从基本的 CSV 读写,到编码处理、单元格格式设置、图表创建、DataTable 集成、流式输出以及多工作表工作簿。

本指南涵盖的核心功能:

  • 基本的CSV到XLSX转换使用SaveAs
  • 国际字符集的编码规范
  • 单元格和区域格式将在转换后应用
  • 图表创建功能直接嵌入 XLSX 文件中
  • 过滤和转换后数据的 DataTable 双向传输
  • 用于服务器端文件传输的 MemoryStream 输出
  • 基于单个 CSV 源文件构建多工作表工作簿

IronXL 支持 Windows、Linux、macOS、Docker 和 Azure 部署,跨 .NET Framework、.NET Core 和 .NET 5 到 10。要探索更多功能,请查看 IronXL 文档,浏览 Excel API 对象参考,或查阅 IronXL 指南,了解诸如 读取Excel文件合并单元格应用公式 等主题。 下载免费试用版在开发环境中测试所有功能,或购买许可证用于生产环境部署。

第一步:
arrow pointer
Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户