如何在 C# 中将大型 Excel 文件导出为 CSV ?

翻译|使用教程|编辑:李显亮|2021-07-28 10:56:47.440|阅读 32 次

概述:在文中,将介绍如何在 C# 中将大型 Excel 文件导出为CSV的问题。

# 31款JAVA开发必备控件和工具 # 企业数字化建设合规无风险[专题]

在本主题中,我们将介绍如何在 C# 中将大型 Excel 文件导出为CSV的问题。下面给出的在 C# 应用程序中以编程方式将 Excel 文件转换为 CSV 格式的步骤以及简单易行的代码将为您提供所需的解决方案。

开发人员在处理像XLSX或XLS这样的大型 Excel 文件时面临的主要问题是内存管理。通过将LoadOptions 类的MemorySetting 属性设置为MemoryPreference,可以轻松解决此问题。这将有助于有效地管理内存。此属性的默认值是 Normal,它应该用于常规大小的 Excel 文件。

下载Aspose.Cells安装包

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 文件。

如果您发现任何其他关于在 C# 中将大型 Excel 文件导出为 CSV的问题,请在Aspose免费支持论坛中提问哦 。
标签:

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


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
在线咨询
联系我们
TOP
在线客服系统
live chat