Сохранить книгу в текстовом формате CSV
Введение
При работе с данными выбранный вами формат может действительно определить, насколько легко вы сможете с ними работать. Среди наиболее распространенных форматов для обработки табличных данных — CSV (значения, разделенные запятыми). Если вы разработчик, работающий с файлами Excel, и вам нужно преобразовать рабочие книги в формат CSV, Aspose.Cells for .NET — фантастическая библиотека, которая упрощает эту задачу. В этом руководстве мы разберем шаги для бесшовного преобразования рабочей книги Excel в текстовый формат CSV.
Предпосылки
Прежде чем приступить к работе, давайте убедимся, что у вас все готово для начала работы:
- Базовые знания C# и .NET: поскольку мы будем писать код на C#, знакомство с языком и платформой .NET имеет важное значение.
- Библиотека Aspose.Cells: Убедитесь, что в вашей среде разработки установлена библиотека Aspose.Cells for .NET. Вы можете загрузить еездесь.
- Visual Studio или любая C# IDE: Вам понадобится интегрированная среда разработки (IDE) для написания и выполнения кода. Visual Studio — популярный выбор.
- Рабочая книга Excel: подготовьте образец рабочей книги Excel (например, «book1.xls»), содержащий некоторые данные для проверки преобразования.
Импортные пакеты
Теперь, когда у нас есть все необходимые условия, первым шагом в этом процессе является импорт необходимых пакетов. В вашем проекте C# вам необходимо включить следующее пространство имен в верхней части вашего файла кода:
using System.IO;
using Aspose.Cells;
using System;
Эти пространства имен предоставят вам доступ к классам и методам, необходимым для работы с файлами Excel и управления потоками памяти.
Шаг 1: Определите путь к каталогу документов
Первый шаг в нашем процессе — определить, где хранятся наши документы (книги Excel). Это важно, поскольку позволяет нашей программе знать, где найти файлы, которые ей нужно обработать.
// Путь к каталогу документов.
string dataDir = "Your Document Directory";
Обязательно замените"Your Document Directory"
с фактическим путем, где находится ваш файл “book1.xls”. Это может быть каталог на вашем компьютере или путь к серверу.
Шаг 2: Загрузите исходную рабочую книгу
Далее нам необходимо загрузить книгу Excel, которая будет преобразована в формат CSV.
// Загрузите исходную рабочую книгу
Workbook workbook = new Workbook(dataDir + "book1.xls");
TheWorkbook
класс из библиотеки Aspose.Cells позволяет манипулировать и получать доступ к книгам Excel. Передавая путь к файлу, мы загружаем указанную книгу для обработки.
Шаг 3: Инициализация массива байтов для данных рабочей книги
Прежде чем начать преобразование рабочей книги в CSV, нам необходимо инициализировать пустой массив байтов, который в конечном итоге будет содержать все данные рабочего листа.
// 0-байтовый массив
byte[] workbookData = new byte[0];
Этот массив байтов объединит данные с каждого рабочего листа в единую структуру, которую мы позже сможем записать в файл.
Шаг 4: Настройте параметры сохранения текста
Теперь давайте настроим параметры того, как мы хотим сохранить текстовый формат. Вы можете выбрать пользовательские разделители или придерживаться табуляции.
// Параметры сохранения текста. Можно использовать любой тип разделителя
TxtSaveOptions opts = new TxtSaveOptions();
opts.Separator = '\t'; // Установка табуляции в качестве разделителя
В этом примере мы используем символ табуляции в качестве разделителя. Вы можете заменить'\t'
любым символом, например запятой (,
), в зависимости от того, как вы хотите отформатировать свой CSV.
Шаг 5: Повторите все рабочие листы
Далее мы пройдемся по всем рабочим листам в рабочей книге, сохраняя каждый из них в нашемworkbookData
массив, но сначала необходимо выбрать, с каким рабочим листом работать.
// Скопируйте данные каждого рабочего листа в текстовом формате в массив данных рабочей книги.
for (int idx = 0; idx < workbook.Worksheets.Count; idx++)
{
// Сохранить активный рабочий лист в текстовом формате
MemoryStream ms = new MemoryStream();
workbook.Worksheets.ActiveSheetIndex = idx;
workbook.Save(ms, opts);
Цикл проходит по каждому рабочему листу в рабочей книге.ActiveSheetIndex
настроено так, что каждый раз в цикле мы сохраняем текущий рабочий лист. Результаты будут сохранены в памяти с помощьюMemoryStream
.
Шаг 6: Извлечение данных из рабочего листа
После сохранения рабочего листа в потоке памяти следующим шагом будет извлечение этих данных и добавление их в нашworkbookData
множество.
// Сохраните данные рабочего листа в массив данных листа
ms.Position = 0; // Сбросить позицию потока памяти
byte[] sheetData = ms.ToArray(); // Получить массив байтов
ms.Position = 0;
сбрасывает позицию для чтения после записи. Затем мы используемToArray()
для преобразования потока памяти в массив байтов, содержащий данные рабочего листа.
Шаг 7: Объедините данные рабочего листа
Теперь мы объединим данные из каждого рабочего листа в одинworkbookData
массив инициализирован ранее.
// Объединить данные этого рабочего листа в массив данных рабочей книги.
byte[] combinedArray = new byte[workbookData.Length + sheetData.Length];
Array.Copy(workbookData, 0, combinedArray, 0, workbookData.Length);
Array.Copy(sheetData, 0, combinedArray, workbookData.Length, sheetData.Length);
workbookData = combinedArray;
}
Мы создаем новый массив, достаточно большой для хранения как существующих данных рабочей книги, так и новых данных рабочего листа. Затем мы копируем существующие и новые данные в этот объединенный массив для дальнейшего использования.
Шаг 8: Сохраните все данные рабочей книги в файл
Наконец, со всеми данными, объединенными в нашемworkbookData
массив, мы можем сохранить этот массив в указанном файле.
//Сохранить все данные рабочей книги в файл
File.WriteAllBytes(dataDir + "out.txt", workbookData);
WriteAllBytes
берет объединенный массив байтов и записывает его в текстовый файл с именем «out.txt» в указанном каталоге.
Заключение
И вот оно! Вы успешно преобразовали книгу Excel в формат CSV с помощью Aspose.Cells for .NET. Этот процесс не только эффективен, но и позволяет легко манипулировать данными Excel для дальнейшего анализа или составления отчетов. Теперь вы можете автоматизировать задачи по обработке данных или даже интегрировать эту функциональность в более крупные приложения.
Часто задаваемые вопросы
Можно ли использовать разные разделители для CSV-файла?
Да, вы можете изменитьopts.Separator
на любой символ, например запятую или вертикальную черту.
Можно ли использовать Aspose.Cells бесплатно?
Aspose.Cells не бесплатен, но вы можете получить бесплатную пробную версиюздесь.
В каких форматах, помимо CSV, я могу сохранять данные?
Aspose.Cells позволяет сохранять данные в различных форматах, включая XLSX, PDF и другие.
Могу ли я обрабатывать большие файлы Excel с помощью Aspose.Cells?
Да, Aspose.Cells разработан для эффективной обработки больших файлов, но производительность может зависеть от системных ресурсов.
Где я могу найти более подробную документацию?
Вы можете найти подробную документацию и примеры на ихсправочный сайт.