В этом разделе мы ответим на вопрос, как экспортировать большой файл Excel в CSV на C#. Шаги по программному преобразованию файла Excel в формат CSV в приложениях C#, приведенные ниже, вместе с простым и легким кодом предоставят вам необходимое решение.
Основная проблема, с которой сталкиваются разработчики при обработке больших файлов Excel, таких как XLSX или XLS, — управление памятью. Эту проблему можно легко решить, установив для MemorySetting property класса LoadOptions значение MemoryPreference. Это поможет эффективно управлять памятью. Значение по умолчанию для этого свойства — «Обычный», которое следует использовать в случае файлов Excel обычного размера.
Действия по экспорту большого файла Excel в CSV на С#
- Установите пакет Aspose.Cells for .NET с сайта NuGet.org.
- Добавить директиву Using для пространства имен Aspose.Cells
- Установите лицензию Aspose с помощью метода SetLicense
- Задайте для свойства MemorySetting значение параметра MemoryPreference.
- Создайте экземпляр Workbook Class и передайте объект LoadOptions, созданный на предыдущем шаге.
- Наконец, сохраните экспортированный выходной CSV-файл.
Код С# для сохранения большого файла 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); | |
//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#, но вы можете использовать тот же код для экспорта файла Excel в CSV в ASP.NET или преобразования Excel file format в CSV в приложениях Windows с .NET Framework. Для этого не требуется файл Excel в системе или на сервере, где выполняется ваш код.