在本主题中,我们将介绍如何在 C# 中将大型 Excel 文件导出为CSV的问题。下面给出的在 C# 应用程序中以编程方式将 Excel 文件转换为 CSV 格式的步骤以及简单易行的代码将为您提供所需的解决方案。
开发人员在处理像XLSX或XLS这样的大型 Excel 文件时面临的主要问题是内存管理。通过将LoadOptions 类的MemorySetting 属性设置为MemoryPreference,可以轻松解决此问题。这将有助于有效地管理内存。此属性的默认值是 Normal,它应该用于常规大小的 Excel 文件。
Aspose.Cells for .NET是Excel电子表格编程API,可加快电子表格的管理和处理任务,支持构建能够生成,修改,转换,呈现和打印电子表格的跨平台应用程序。同时不依赖于Microsoft Excel或任何Microsoft Office Interop组件。你可以下载《Aspose.Cells for .NET开发者指南》获取更多帮助。
在 C# 中将大型 Excel 文件导出为 CSV 的步骤
- 使用Aspose.Cells for .NET NuGet 包
- 为 Aspose.Cells 命名空间添加 Using 指令
- 使用 SetLicense 方法设置 Aspose 许可证
- 将MemorySetting属性设置为 MemoryPreference 选项
- 创建Workbook Class的实例并传递上一步创建的 LoadOptions 对象
- 最后,保存导出的输出CSV文件
将大型 Excel 文件保存为 CSV 格式的 C# 代码
using System;
//Add reference to Aspose.Cells for .NET API
//Use following namespaces to Export excel file to CSV
using Aspose.Cells;
namespace ExportLargeExcelFiletoCSV
{
class Program
{
static void Main(string[] args)
{
//Set Aspose license before exporting Excel file to CSV file format
//using Aspose.Cells for .NET
Aspose.Cells.License AsposeCellsLicense = new Aspose.Cells.License();
AsposeCellsLicense.SetLicense(@"c:\asposelicense\license.lic");
//For optimized memory usage for large excel file use
//MemoryPreference MemorySetting option
LoadOptions OptionsLoadingLargeExcelFile = new LoadOptions();
OptionsLoadingLargeExcelFile.MemorySetting = MemorySetting.MemoryPreference;
//Create an instance of Workbook class to load input large excel file
//Also pass the MemoryPreference load options to the constructor
Workbook ExportExcelToCSVWorkBook = new Workbook("Large_Excel_To_Export.xlsx", OptionsLoadingLargeExcelFile);
//Save the exported output file as CSV format
ExportExcelToCSVWorkBook.Save("Exported_Output_CSV.csv", SaveFormat.Csv);
}
}
}
上面的代码仅将 Excel 文件中的第一个工作表保存为 CSV。但是,如果大型 Excel 文件中有多个工作表,则可以使用以下代码片段。请注意,在这种情况下,我们再次需要使用相同的 MemorySetting 属性来正确有效地管理内存。
将多个 Excel 工作表导出为单独的 CSV 文件
using System;
//Add reference to Aspose.Cells for .NET API
//Use following namespaces to Export excel file to CSV
using Aspose.Cells;
namespace ExportLargeExcelFiletoCSV
{
class Program
{
static void Main(string[] args)
{
//Set Aspose license before exporting Excel file to CSV file format
//using Aspose.Cells for .NET
Aspose.Cells.License AsposeCellsLicense = new Aspose.Cells.License();
AsposeCellsLicense.SetLicense(@"c:\asposelicense\license.lic");
//For optimized memory usage for large excel file use
//MemoryPreference MemorySetting option
LoadOptions OptionsLoadingLargeExcelFile = new LoadOptions();
OptionsLoadingLargeExcelFile.MemorySetting = MemorySetting.MemoryPreference;
//Create an instance of Workbook class to load input large excel file
//Also pass the MemoryPreference load options to the constructor
Workbook ExportExcelToCSVWorkBook = new Workbook("Large_Excel_To_Export.xlsx", OptionsLoadingLargeExcelFile);
//To save multiple sheets in a workbook use following code
for (int SheetIndex = 0; SheetIndex < ExportExcelToCSVWorkBook.Worksheets.Count; SheetIndex++)
{
ExportExcelToCSVWorkBook.Worksheets.ActiveSheetIndex = SheetIndex;
ExportExcelToCSVWorkBook.Save("Exported_CSV_" + SheetIndex + ".csv", SaveFormat.Csv);
}
}
}
}
在上面的代码中,我们使用了 C# 控制台应用程序,但您可以使用相同的代码在 ASP.NET 中将 Excel 文件导出为 CSV,或者在使用 .NET Framework 的 Windows 应用程序中将 Excel 文件转换为 CSV。这不需要运行代码的系统或服务器上的 Excel 文件。
如果您有任何疑问或需求,请随时加入Aspose技术交流群(761297826),很高兴为您提供查询和咨询。