代码:如何在 C# 中实现将大型 Excel 文件导出为 CSV ?

2023-10-27

在本主题中,我们将介绍如何在 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 的步骤

  1. 使用Aspose.Cells for .NET NuGet 包
  2. 为 Aspose.Cells 命名空间添加 Using 指令
  3. 使用 SetLicense 方法设置 Aspose 许可证
  4. 将MemorySetting属性设置为 MemoryPreference 选项
  5. 创建Workbook Class的实例并传递上一步创建的 LoadOptions 对象
  6. 最后,保存导出的输出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),很高兴为您提供查询和咨询

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

代码:如何在 C# 中实现将大型 Excel 文件导出为 CSV ? 的相关文章

随机推荐