In dit onderwerp beantwoorden we de vraag hoe je een groot Excel-bestand exporteert naar CSV in C#. De onderstaande stappen om het Excel-bestand programmatisch naar CSV-indeling te converteren in C#-toepassingen, samen met de eenvoudige en gemakkelijke code, bieden u de vereiste oplossing.
Het grootste probleem voor ontwikkelaars bij het verwerken van grote Excel-bestanden zoals XLSX of XLS is geheugenbeheer. Dit probleem kan eenvoudig worden opgelost door MemorySetting property van de klasse LoadOptions in te stellen op MemoryPreference. Dit zal helpen om het geheugen efficiënt te beheren. De standaardwaarde van deze eigenschap is Normaal, die moet worden gebruikt in het geval van Excel-bestanden van normale grootte.
Stappen om een groot Excel-bestand te exporteren naar CSV in C#
- Installeer het Aspose.Cells for .NET-pakket van NuGet.org
- Add Gebruik van richtlijn voor Aspose.Cells naamruimte
- Aspose-licentie instellen met behulp van de SetLicense-methode
- Stel MemorySetting eigenschap in op MemoryPreference optie
- Maak een instantie van Workbook Class en geef het object LoadOptions door dat in de vorige stap is gemaakt
- Sla ten slotte het geëxporteerde uitvoer-CSV-bestand op
C#-code om een groot Excel-bestand op te slaan als CSV-indeling
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); | |
} | |
} | |
} |
De bovenstaande code slaat alleen het eerste blad in het Excel-bestand op als CSV. Als u echter meerdere bladen in het grote Excel-bestand hebt, kunt u het volgende codefragment gebruiken. Let op, in dit geval moeten we opnieuw dezelfde MemorySetting-eigenschap gebruiken om het geheugen goed en efficiënt te beheren.
Meerdere Excel-bladen exporteren om CSV-bestanden te scheiden
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); | |
} | |
} | |
} | |
} |
In de bovenstaande code hebben we de C# Console-toepassing gebruikt, maar u kunt dezelfde code gebruiken om het Excel-bestand naar CSV in ASP.NET te exporteren of Excel file format naar CSV te converteren in Windows-toepassingen met .NET Framework. Hiervoor is geen Excel-bestand nodig op het systeem of de server waarop uw code wordt uitgevoerd.